Stati in Dresden (Mesirii, 12. Okt 2002, 21:23:23):
Da wir zur Zeit einen lieben Gast in Dresden haben und mein Tauchkurs
naechsten Dienstag nicht stattfindet, lade ich Euch alle am Dienstag zur
gewohnten Zeit zu einem SuperSonderStati im CD ein.

Gruss Mesi

-----------------------------------------------------------------------------



Stammtisch in Muenchen (Alcina, 15. Okt 2002, 07:12:27):
Hallo zusammen,

der Muenchner Stammtisch findet im Oktober am Freitag, dem 25.10. ab 19 Uhr im
Bergmannshof (Landsbergerstr. 73, Naehe S-Bahn Hst. Donnersberger Bruecke)
statt.

Viele Gruesse

Alcina - hofft, dass viele kommen :o)

-----------------------------------------------------------------------------



Stati Ortsverlagerung (Mesirii, 15. Okt 2002, 18:12:51):
Aufgrund der heutigen Schliessung des CD die Sniper zum Glueck mitbekommen
hat, muessen wir unseren Stati-Ort verlegen. Der neue Treffpunkt heisst
"Triangel" und ist ne Spielekneipe, also sollte sie ruhig genug fuer uns
sein.

Zu Fuss isses ca. 10 min vom CD weg.

Ich haenge auch nochmal ne Skizze an das CD fuer die Leute, die keine Mail
mehr lesen und zu spaet kommen.

Bis denne, bei Nachfragen koennt Ihr auch nochmal bei mir anrufen.


Anfahrt siehe www.triangel-dd.de oder siehe unten.

Die Triangel befindet sich direkt an der Pfotenhauer Str. Ecke
Arnoldstrasse 16

die Buslinie 75 haelt direkt vor der Tuer
Haltestelle Gutenbergstrasse
in nur 3 Minuten Fussweg erreicht Ihr die Strasenbahnlinie 6
Haltestelle Trinitatisplatz
Ausreichende Parkmoeglichkeiten findet Ihr vor dem Haus und den
angrenzenten Seitenstrassen.

-----------------------------------------------------------------------------



MARBURG! (Zook, 22. Okt 2002, 21:22:56):
Hallo zusammen,

am Donnerstag, 28. November 2002 treffen wir uns in Marburg zu einer
gemuetlichen Runde. Alte Saecke haben sich angekuendigt, also kommt und
Ihr koennt MorgenGrauen-Dinosaurier sehen. :-) 

Wenn Ihr kommen wollt, meldet Euch doch bei mir, dann weiss ich,
wieviele in etwa kommen und kann eine Kneipe auswaehlen.

Los geht es um 20.00 Uhr. 

Gruss, Zook.

PS: Key, mach mal Vorschlaege fuer nen Ort! ;)

-----------------------------------------------------------------------------



Re: MARBURG! (Zook, 22. Okt 2002, 21:36:59):
~#! rn=Zook rt=1035314576 rg=treffen.bekanntmachungen
~#! tid=1035314576
Gnnnnnnnnnnnnnnn.... mit alten Leuten sollte man nicht versuchen, Termine
zu machen. Kleine Aenderung, damit auch Auswaertige besser koennen, ziehen
wir das etwas von der Winter-Party weg und legen es auf einen Freitag, 

das ist dann Freitag, der 22. November 2002, 20.00 Uhr, Marburg 
(Ort kommt noch).

Zook.

-----------------------------------------------------------------------------



Stati in Bonn (Twingi, 27. Okt 2002, 18:52:09):
Huhu Ihrs,

es ist mal wieder soweit. 
Am Samstag, den 09.11.2002 ab 18:00 Uhr
findet in Bonn, Wiesenweg 24 ein Stammtisch statt.
Erwartet werden ein paar seltenere auswaertige Besucher ;-)
Einlass wird durch Druecken der obersten Klingel gewaehrt ;-)

Rueckmeldungen wie immer an mich

Knuddels
Twingi

-----------------------------------------------------------------------------



planaenderung... (Pitfall, 31. Okt 2002, 13:29:52):
der stati morgen wird nicht wie zuerst gedacht im "aufsturz" stattfinden,
sondern im cafe "Multi-Kulti" im interkulturellen haus, schoenfliesser strasse
7
los gehts ab 20 uhr

have fun
*pit*

-----------------------------------------------------------------------------



Re: planaenderung... (Gnome, 31. Okt 2002, 17:44:50):
~#! rn=Pitfall rt=1036067392 rg=treffen.bekanntmachungen
~#! tid=1036067392
natuerlich ist das cafe in pberg (naehe u-bhf. schoenhauser allee) und
NICHT in reinickendorf (da gibts auch ne schoenfliesser str.).

gnOme

-----------------------------------------------------------------------------



Stammtisch Osnabrueck (Cuchullin,  1. Nov 2002, 18:24:03):
In eineinhalb Stunden in Joe's Saloon am Viti-Hof. 


-----------------------------------------------------------------------------



stati stuttgart (Leibi,  2. Nov 2002, 11:47:45):
huhu zusammen,
ich hab jetzt mal einen tisch im enchilada bestellt und zwar am
16. nov ab 18 uhr (happy hour)

ist natuerlich wieder ein samstag, denn wenn mir keiner was anderes sagt,
werde ich immer fuer samstags den tisch bestellen.
(es ist diesmal uebrigens die ganze grotte 1. reinlaufen und ganz nach hinten
links)

bis dann
leibi


-----------------------------------------------------------------------------



Re: Re: MARBURG! (Zook,  5. Nov 2002, 10:36:02):
~#! rn=Zook rt=1035315419 rg=treffen.bekanntmachungen
~#! tid=1035314576
Genauere Infos zum Marburg-Stammtisch:

  2002-11-22, ab 19.00 Uhr im Hinkelstein

Cisou hat einen Tisch fuer ca. 15-20 Leute reserviert. Also kommt auch
alle, die Ihr Euch bei mir gemeldet habt und wir lassen es richtig krachen ;)

Gruss, Zook.

-----------------------------------------------------------------------------



Stammtisch in Karlsruhe (Boing,  5. Nov 2002, 10:42:29):
Der neue Wirt im Kleinen Meierhof macht sich bisher gut, es sind noch
keine Anzeichen dafuer zu erkennen, dass der Stammtisch umziehen sollte.
Insofern gilt auch weiterhin: Immer Donnerstags um 20 Uhr ist Stammtisch
im Kleinen Meierhof (Zaehringer Strasse, zwischen Z10 und Cafe Wien).
  Boing

-----------------------------------------------------------------------------



stati halle (Cassandra,  6. Nov 2002, 16:33:56):
auf wunsch einer einzelnen Person findet auch in halle mal wieder ein
stammtisch statt.
Datum 11.11.02 (Montag)
Uhrzeit 20:00
Ort wird noch bekanntgegeben
Bei interesse oder fuer Ubernachtungsmoeglichkeiten mail an mich

Cassandra

-----------------------------------------------------------------------------



Stati MS (Puk,  7. Nov 2002, 17:56:14):
nod
Freuet euch, ein weiterer Beruehmter Stammtisch im schoenen Mnster wird
ausgerufen.
Datum: 11.11.2002
Zeit: nein, nicht 11:11 sondern 20:07 :)
Ort: Frauenstrasse 24 in der Frauenstrasse 24 

Kommet zuhauf und medet euch an oder auch nicht wie ihr lustig seit :)
P.S. es kommt sogar goettlicher Besuch wenn ich da richtig informiert bin,
also jeder der nicht kommt hat eben wieder mal was verpasst :)

Puk

-----------------------------------------------------------------------------



Re: Stati MS (Pitfall,  7. Nov 2002, 17:59:22):
~#! rn=Puk rt=1036688174 rg=treffen.bekanntmachungen
~#! tid=1036688174
duh
dann machen wir halt am 16.11. in berlin eine gegenveranstaltung, so das habt
ihr nun davon.
wir werden uns wie immer um 20 uhr im "aufsturz" treffen

*pit*

-----------------------------------------------------------------------------



Re: Re: Stati MS (Pitfall, 11. Nov 2002, 21:49:51):
~#! rn=Pitfall rt=1036688362 rg=treffen.bekanntmachungen
~#! tid=1036688174
kurze planaenderung:

der stati wird doch schon am freitag dem 15.11. um 20 uhr im aufsturz sein

have fun
*pit*

-----------------------------------------------------------------------------



kw-stati (Caren, 12. Nov 2002, 16:04:20):
Halle hat Blut geleckt :) Nach dem sagenhaften KW-Stati gestern abend koennen
wir eine Wiederholung kaum erwarten. Deshalb treffen wir uns schon wieder, und
zwar am Sonntag (17.11.) um 20:00 Uhr im Hohenzollern (auf dass die Welt
vornehm zugrunde gehe...)
Vor Freude schon ganz durchloechert,
caren

-----------------------------------------------------------------------------



Re^3: Stati MS (Pitfall, 12. Nov 2002, 16:27:03):
~#! rn=Pitfall rt=1037047791 rg=treffen.bekanntmachungen
~#! tid=1036688174
wegen zunehmender boykottmassnahmen entfaellt der stammtisch am freitag.
ob am samstag dann dafuer stati ist wird noch bekannt gegeben.

sorry
pit

-----------------------------------------------------------------------------



Re^4: Stati MS (Gloinson, 12. Nov 2002, 19:12:05):
~#! rn=Pitfall rt=1037114823 rg=treffen.bekanntmachungen
~#! tid=1036688174
Kommendes WE ist bekanntlichermassen Rudel... LAN-Party in der Melle ;)

-----------------------------------------------------------------------------



Re: kw-stati (Cassandra, 12. Nov 2002, 19:21:06):
~#! rn=Caren rt=1037113460 rg=treffen.bekanntmachungen
~#! tid=1037113460
Da leider ein Mitglied des Orga-Teams nicht kann wird der stati verlegt.
Neuer termin entweder Montag oder bei auswertigen gaesten dienstag
Cassandra

-----------------------------------------------------------------------------



Freitagsstammtisch Dresden 15.11.2002 (Mesirii, 12. Nov 2002, 23:05:47):
Liebe Mitmudder,
hiermit kuendige ich mal wieder einen Stammtisch an, diesmal nicht Dienstag
sondern, da Vardion am Freitag zu Tauchen in Dresden weilt fuer Freitag, den
15.11.2002 um ca. 20:00 Uhr wieder im Triangel. Wer nicht (mehr) weiss wo das
ist, moege Bescheid sagen.
Wir (Vardion & ich) werden wegen des Tauchens vielleicht etwas spaeter kommen.

Gruss Mesi

-----------------------------------------------------------------------------



spontanes wintertauchen (Humni, 14. Nov 2002, 11:30:21):
~#! on=Humni ot=1037269791 og=treffen
~#! on=Muadib ot=1037181369 og=treffen.bekanntmachungen
Hiho,

am 23.11, das ist ein Samstag, gibt es in Groetzingen bei Karlsruhe ein
kleines Wintertauchen.
Der See ist etwa 12 Meter tief und bis 7 Meter interessant. Somit koennen auch
Halbtrockene noch rein :)
Bisher gehen mit Muaddib und Muadib. Wer noch mit will soll sich einfach bei
mir melden und bekommt dann auch ne Wegbeschreibung.
Los geht das ganze um 11 Uhr und endet mit einem kleinen Treffen im kleinen KM
in Karlsruhe.

Das KM Treffen sollt etwa um 19.00 Uhr sein. Wer nur dazu kommen will ist auch
herzlich eingeladen.

Muadib

-----------------------------------------------------------------------------



.-*S*T*A*T*I*-. (Qitess, 14. Nov 2002, 11:44:11):
  Nein, es ist kein Geruecht!

    Er findet wieder statt:

  Der legendaere Braunschweiger

       *N*I*K*O*S*T*A*T*I*

 --------------------------------

           Freitag
          6.Dezember
           20." Uhr
        im ViertelNach

 --------------------------------

BITTE KURZE ANMELDUNGSMAIL AN QITESS!

 --------------------------------

es duerfen (und sollen auch) natuerlich auch Nichtbraunschweiger vorbeikommen
Anfahrtsplaene/-beschreibungen gibt es auf Anfrage
Uebernachtungsmoeglichkeiten koennen auch gestellt werden

QI**

-----------------------------------------------------------------------------



Stammtisch Bochum am 29.11.2002  (Lacri, 17. Nov 2002, 15:10:31):
Hi, 

wir haben beschlossen, dass wir am 29.11.2002 in Bochum einen 
Stammtisch machen werden. Das ganze beginnt diesmal um 
18:00 Uhr und findet in Bochum, Kirchharpener Strasse 88 statt. 

Rueckmeldungen bitte an Thufhir oder mich, damit wir planen 
koennen, wieviel wir an Essen und Getraenken besorgen muessen. 
Das ganze wird dann umgelegt auf die Leute die kommen. 

Gruesse, Lacri 

p.s. Wegbeschreibungen gibts diesmal ausnahmsweise bei mir. (: 

-----------------------------------------------------------------------------



Flammkuchenessen (Bambi, 17. Nov 2002, 17:26:35):
Einige von uns Karlsruher Muddern haben uns ueberlegt, ob wir am 29.11.2002 im
Elsass Flammkuchen essen gehen wollen.
Aus diesem Grund nimmt Sistance Anmeldungen entgegen. Sollten sich bis zum
sagen wir 24.11.2002 genuegend Leute melden, dann wuerd ich ggf. einen Tisch
reservieren etc.

-----------------------------------------------------------------------------



TERMINVERLEGUNG! (Qitess, 18. Nov 2002, 13:06:42):
Hallo!
So wie es aussieht, kann die Haelfte der Braunschweiger Mudder am 6. Dezember
gar nicht.
Also wurde der Nikolausstati kurzerhand und eigenmaechtig von mir verlegt auf
den Freitag danach, das ist Freitag der Dreizehnte!
Uhrzeit und Lokalitaet bleiben (20." Uhr im Viertel Nach)

QI**


-----------------------------------------------------------------------------



Stammtisch in Duesseldorf (Kadabra, 19. Nov 2002, 20:57:20):
Wegen lieben Besuchs  erklaere ich hiermit Mittwoch, den 27.11
zum Stammtischtag in Duesseldorf. Wir treffen uns im Tigges,
Brunnenstr. 1 direkt am Bilk-S-Bahnhof ab 20.00 Uhr. Ja,
Cirdan, Sugaan, Critter und aeh andere aus der naeheren Umgebung
IHR seid angesprochen :-)
Mails wegen Wegbschreibungen usw. bitte an mich :-)
kadabra
Ps : Ach So ... Special Guest ist Deepbblue :-)

-----------------------------------------------------------------------------



Stammtisch in Muenchen (Alcina, 21. Nov 2002, 15:51:26):

Hallo zusammen,

der Stammtisch im November wird am 29.11..2002 ab 19 Uhr im Bergmannshof
stattfinden. Es haben sich einige Gaeste angekuendigt, warum nicht noch mehr?
;o)

Alcina - wartet auf Mails

-----------------------------------------------------------------------------



Re: Flammkuchenessen (Bambi, 24. Nov 2002, 21:51:24):
~#! rn=Bambi rt=1037550395 rg=treffen.bekanntmachungen
~#! tid=1037550395
So. Reservierung ist gemacht.
Zielort ist:
a la vigne, 7, rue de fort-louis, roeschwoog
Tel. dort: 0033388864912
Wegbeschreibung: K.A. Angeblich bei Rastatt ueber die Grenze und dort solls
sein. ;)
Treffen in Karlsruhe: Uniparkplatz, wie immer. Wir wollen um 19.00 in
Frankreich sein, also rechtzeitig vorher.
Rechtzeitig vorher ist am Parkplatz um 18 Uhr.

MfG, Bambi.

-----------------------------------------------------------------------------



Re: Re: Flammkuchenessen (Vincent, 25. Nov 2002, 12:18:29):
~#! rn=Bambi rt=1038171084 rg=treffen.bekanntmachungen
~#! tid=1037550395
Der Weg dorthin ist recht einfach zu finden bzw. zu beschreiben.

Version 1:
Von KA aus ueber die A5 nach Baden-Baden. Ausfahrt Baden-Baden raus und
dann Richtung Rastatt/Iffezheim und NICHT Richtung Baden-Baden. Immer
schoen gerade aus. Uber die Kreuzung rueber und dann Richtung Frankreich (
am besten einfach den Schildern folgen).
In Frankreich dann Richtung Roppenheim/Roeschwoog/Sessenheim fahren und
NICHT Richtung Seltz oder so. Wenn alles richtig laeuft, verlasst ihr nicht
allzu lang nach der Grenze die Landstrasse an der Abfahrt Roppenheim. An der
naechsten Kreuzung dann nach links. Ihr fahrt dann durch Roppenheim und dann
kommt auch schon Roeschwoog. An der Kreuzung mit Ampel in Roeschwoog nach
links und dort kommt dann auf der linken Seite die Flammkuchenwirtschaft.

Version 2:
Autobahn A5 von KA nach Rastatt. Rastatt abfahren. Richtung Rastatt und
dann durch den Stadtkern durchfahren. Es gibt zwei Moeglichkeiten, die
Grenze zu ueberschreiten: In Wintersdorf oder in Iffezheim. Ihr fahrt
also den Beschilderungen fuer eine der beiden Ortschaften nach. Im Falle
Iffezheim ist das dann das gleiche wie in Version 1, wenn ihr ueber der
Grenze seid. Im Falle Wintersdorf faehrt man ueber die Rheinbruecke, folgt
der Strasse, und biegt dann links ab, wenn es geradeaus nicht mehr
weitergeht. Dann befindet man sich schon auf der Strasse nach Roppenheim und
Roeschwoog, faehrt aber laenger auf ihr, als in der Version 1, weil man
schon frueher auf sie draufgefahren ist.

That's it.

Gruss
Vincent

-----------------------------------------------------------------------------



Sonderstati Berlin 2.12. (Rochus,  1. Dez 2002, 20:11:12):
Morgen ist Sonderstati im Aufsturz (Oranienburger Str.),
der "Special Guest" bleibt uns diesmal a) etwas laenger erhalten
und b) gibt's was zu feiern :-) Natuerlich ab 20 Uhr...

  Rochus

-----------------------------------------------------------------------------



Gluehwein@Bonn (Liara,  3. Dez 2002, 23:09:41):
Da wir uns bisher noch nicht zum weihnachtsmaerktlichen Gluehweintrinken
getroffen haben, schlage ich Donnerstag, den 5.12.2002 19 Uhr vor.
Wir treffen uns an der total ueberfuellten Gluehweinbude am Kaufhof-Eingang
(beim Steiff-Schaufenster).
Ich waere dankbar fuer ein kurzes 'Ich komme auch!'-Lebenszeichen.

Gruesse, Liara

-----------------------------------------------------------------------------



*S*T*A*T*I* (Qitess,  3. Dez 2002, 23:15:06):
Hallo, liebe Braunschweiger!

Am Samstag, den 14. Dezember findet mal wieder ein Nikolaus-*S*T*A*T*I* in
Braunschweig im Viertel Nach statt.

Alle MGler aus Braunschweig und auch gerne von woanders sind herzlich
eingeladen sich
GEFAeLLIGST BEI MIR ZU MELDEN, SICH ANZUMELDEN UND DANN GEFAeLLIGST AUCH
dort vorbeizukommen.

War ich etwas direkt? ;-) Nicht so tragisch nehmen ...

Also: Samstag, 14.Dezember, 20:00 Uhr im Viertel Nach in Braunschweig

Wegbeschreibung, Anfahrtsskizze und Uebernachtungsmoeglichkeit gibt es auf
Anfrage.
Und mal sehen, wenn Ihr Euch anmeldet, bekommt Ihr vielleicht sogar eine
kleine Ueberraschung vom Nikolaus (der kommt hier in Braunschweig manchmal
etwas spaeter).

QI** ansonsten friedlich ... aehem ...


-----------------------------------------------------------------------------



Re: Gluehwein@Bonn (Cadrach,  4. Dez 2002, 11:35:28):
~#! rn=Liara rt=1038953381 rg=treffen.bekanntmachungen
~#! tid=1038953381
Da an dem Tag wohl relativ viele nicht koennen werden, kuendige ich dann das
naechste Weihnachtsmarkttreffen in Bonn auch schonmal an, damit alle genug
Zeit haben sich das ganze in ihren Terminkalender zu schreiben :).
Ins Auge gefasst, haben wir Mittwoch den 18.12 ab 19:00. Der genaue Stand wird
nach umfangreichem Test noch rechtzeitig bekannt gegeben. Mit ein bisschen
Glueck werden wir an diesem Tag dann auch endlich wieder ein altbekanntes
Gesicht unter uns begruessen duerfen, das schon laenger nicht mehr dabei war.
Kommet zu Hauf, auf das wir die Budenbesitzer in Angst und Schrecken
versetzen.

Cad*

-----------------------------------------------------------------------------



Weihnachtsmarkt-Treffen in Bochum  (Lacri,  9. Dez 2002, 21:57:00):
Hi, 

aufgrund eines speziellen Wunsches kuendige ich hiermit ein
Weihnachtsmarkttreffen in Bochum am Freitag den 13.12.2002 an. 
Das Ganze soll um 17:30 (ca.) anfangen und zwar mit dem Treffpunkt Bochum
Hauptbahnhof (bei dem Informationsstand/schalter). 

Gruesse, 
Lacri

p.s. Falls einer spaeter kommen moechte oder auch erst spaeter kann dann kann
er bei mir meine Handynummer erfragen. 

-----------------------------------------------------------------------------



*S*T*A*T*I* (Qitess, 11. Dez 2002, 10:33:11):
************************************************************************
*ACHTUNG*ACHTUNG*ACHTUNG*ACHTUNG*ACHTUNG*ACHTUNG*ACHTUNG*ACHTUNG*ACHTUNG*
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Ich moechte an dieser Stelle noch einmal auf den

*N*I*K*O*S*T*A*T*I*

hinweisen.

Er findet statt in Braunschweig im Viertel Nach, und zwar am 14.12. (Samstag)
um 20." Uhr.

Leute die auch noch kommen wollten, moegen sich doch bitte noch bei mir
melden, damit ich weiss, wieviele wir insgesamt werden, weil ich ja unter
Umstaenden auch einen Tisch fuer uns reservieren muss.
Leuten von ausserhalb kann eine Uebernachtungsmoeglichkeit geboten werden, und
eine Wegbeschreibung erfolgt auf Anfrage.

In froher Erwartung ... (nein, nicht schwanger)

QI**

-----------------------------------------------------------------------------



Re: Re: Gluehwein@Bonn (Cadrach, 13. Dez 2002, 20:39:35):
~#! rn=Cadrach rt=1038998128 rg=treffen.bekanntmachungen
~#! tid=1038953381
Inzwischen haben wir uns auch fuer einen Stand entschieden.

munteres Gluehwein trinken
am 18.12 ab 19:00
in Bonn am Gluehweinstand bei C&A
das umgebaute Karussel gegenueber dem Korbstand.

Fuer den Fall das Interesse besteht anschliessend noch irgendwo hinzugehn,
waer es nett kurz ne mail an Twingi oder mich zu schicken. Ansonsten kommet zu
hauf! :)

Cad*

-----------------------------------------------------------------------------



stati stuttgart (Leibi, 18. Dez 2002, 19:21:26):
huhu zusammen,
noch mal der vollstaendikeit halber:
stati ist am samstag 28.12.02 ab 19 uhr im enchilada.
der tisch ist schon reserviert und es sollte diesmal wirklich der tisch in der
grotte 1 sein :)

wenn schon jetzt weiss, dass er nicht um 19 uhr kommt, waere es nett mir das
zu sagen. sonst geb ich alle plaetze, die frei sind wieder ab.

leibi 

-----------------------------------------------------------------------------



Berlin 4. 1. 2003 (Rochus, 27. Dez 2002, 20:33:29):
So, aufgrund haeufiger Nachfragen verlege ich den ersten Stati
des Jahres auf den Samstag und in meine Wohnung und
koch nochmal Chili con Carne (oder sollte ich besser
schreiben "con noch mehr Chili"? ;-) Keine Angst, ich mach
harmloses und scharfes, alle die etwas dazwischen moechten
koennen mischen...)
Wegbeschreibung gibt es auf Anfrage, weil ich eh gerne ne Mail
haette, damit ich weiss, wieviel ich einkaufen muss...
Getraenke sind, wie letztes Mal, Eure Sache (etwa 1/2 Kasten Bier
und 1/2 Flasche Sierra "Tequila" sind noch da), ich kuemmer
mich schon um das Essen...
Falls noch jemand ausser Gnome "sin Carne" moechte, auch
bitte Bescheid geben...
Ach ja, und ich wuerde sagen so ab 16 Uhr kann man kommen, um 17 fang
ich an zu kochen und irgendwann zwischen 18 und 19 sollte es dann
fertig sein... hat ja letztes mal auch gut geklappt :-)
Ich hol diesmal auch mehr Brot, versprochen ;-)

  Rochus

-----------------------------------------------------------------------------



Re: stati stuttgart (Hight, 28. Dez 2002, 13:30:32):
~#! rn=Leibi rt=1040235686 rg=treffen.bekanntmachungen
~#! tid=1040235686
hehe ja ich komm dann halt bischen spaeter und versuchs auf gutglueck oder ich
ruf humni an der soll mir dann sagen wos langgeht ,o) hoffentlich hat der nich
auch ne neue nummer wie imda ... unmoegliches volk da ...

wenn ich wieder im nitchs landnde bin ich stinkig ,o)
und irgendwie suckt telnet ohne echo

-----------------------------------------------------------------------------



DA0701021900HP (Mandragon,  6. Jan 2003, 20:25:30):

Aufgrund des Heimatbesuches von Arun treffen wir uns morgen zu einem
gemuetlichen Beisammensein mit evtl. danach rudeln im Hotzenplotz in
Darmstadt, Hotzenplotz. 

Wollte ich nur mal angemerkt haben ;-)

Ma*

-----------------------------------------------------------------------------



Stammtisch Hamburg, 17.01. (Bielefeld,  9. Jan 2003, 22:02:09):
Moin!

Schaut so aus, als koennten wir uns auf den 17.01. einigen, also wird
es so. Treffpunkt ist wieder die Backatelle, Fuhlsbuettler Strasse
Nummer schiessmichtot (jedenfalls 5 MInuten Fussweg vom Bahnhof
Barmbek weg). Wuerde mal so sagen ab ca. 19:30 Uhr...

-Bielefeld

-----------------------------------------------------------------------------



Re: Stammtisch Hamburg, 17.01. (Kelris,  9. Jan 2003, 22:15:49):
~#! rn=Bielefeld rt=1042146129 rg=treffen.bekanntmachungen
~#! tid=1042146129

Fuhlsbuettler Str. 138  22305 Hamburg 

Gruss, Kelris.

-----------------------------------------------------------------------------



Stammtisch Bonn (Liara, 10. Jan 2003, 20:04:46):

                     SAMSTAG, 18. JANUAR 2003

                             19 UHR

                     KNEIPE NOCH UNBEKANNT :)

                Wir bekommen Besuch aus Muenster!


Am Sonntag (19.) wird bei mir gesellschaftsspielt. :)
Uebernachtungsmoeglichkeiten sind vorhanden. Bitte um rechtzeitige Anmeldung
bei Twingi oder bei mir.

Liara, freut sich schon!

-----------------------------------------------------------------------------



Stammtisch in Hamburg steht fest! (Kelris, 11. Jan 2003, 13:18:49):
Liebe Hamburger und potentielle Gaeste,

hier die Koordinaten des Stati Hamburg:

Datum: 17.01.2003
Ort: Backatelle Barmbek
Uhrzeit: 19:30 Uhr

Stadtplan:
http://www.backatelle.de/Filiale_Barmbek/Karte_Barmbek/karte_barmbek.html

Gruss Kelris.

P.S. Tisch ist unter dem Namen Scheele reserviert.

-----------------------------------------------------------------------------



StaTi Dresden am 17.01. (Vardion, 13. Jan 2003, 16:17:49):
Hi.

Diese Woche Freitag (17.01.) findet in Dresden mal wieder ein StaTi im
Triangel (die Kneipe, wo wir im November auch waren) statt. Offizielle
Startzeit ist (wie immer) 20 Uhr, Mesirii und ich werden uns wohl wieder so 15
bis 30 Minuten verspaeten.

Vardion

-----------------------------------------------------------------------------



spontanstati stuttgart (Leibi, 23. Jan 2003, 22:33:29):
~#! on=Leibi ot=1043357218 og=treffen
huhu zusammen,

wegen angekuendigtem spontan besuch, gibts am 3.2. ab 19 uhr mal wieder einen
stati in stuttgart im enchilada.

anmeldung waere ganz ok.

leibi - war schon lange keine cocktails mehr trinken

-----------------------------------------------------------------------------



MS 28.1.03 (Foobar, 26. Jan 2003, 14:54:23):
Moin,

wir treffen uns mal wieder, und zwar um 20.15 am Dienstag, 28.1. in der
Frauenstrasse 24.

Foobar

-----------------------------------------------------------------------------



Stammtisch in Muenchen (Alcina, 27. Jan 2003, 12:09:36):
Hallo zusammen,

besser spaet als nie: am Mittwoch, dem 29.01.2002 beginnt der Stammtisch in
Muenchen (wie immer im Bergmannshof).
Gaeste sind herzlich eingeladen.

Alcina

P.S.: Das Ganze startet 19 Uhr

-----------------------------------------------------------------------------



hoeret (Pitfall, 29. Jan 2003, 18:30:35):
die berliner mudgemeinde wird sich am 7.2. ab 20 uhr 
mal wieder im "aufsturz" versammeln

erscheint zahlreich

pit*

-----------------------------------------------------------------------------



Wochenend-Stati in Muenster! (Areelanir, 29. Jan 2003, 19:04:16):
Der muensteraner Stati hat beschlossen, sich mal wieder an einem Wochenende
zusammenzufinden. Dies wird am Samstag, den 8.2. passieren. Genauer Treffpunkt
und Uhrzeit stehen noch nicht fest. Als Gaeste haben sich schon Karima und
Thantalas angekuendigt. Wer
Wir sehen uns in Muenster!
Areelanir

-----------------------------------------------------------------------------



Re: hoeret (Pitfall, 31. Jan 2003, 12:29:01):
~#! rn=Pitfall rt=1043861435 rg=treffen.bekanntmachungen
~#! tid=1043861435
ok ok
auf goettliche eingebung und das flehen kandris hin
wird der berliner stati am 10.02. ab 20 uhr im 
"druiden" in der schoenhauser allee 42 
stattfinden. erscheint in ehrfurcht 

pit*

-----------------------------------------------------------------------------



Stammtisch Magdeburg, 06.02. (Jehova,  4. Feb 2003, 17:09:51):

Donnerstag 06.02.2003, 18 Uhr, Pizzahut (am Hauptbahnhof)

Anlaesslich der All-You-Can-Eat-Tage (hm, ist der letzte Tag) laedt die
Magdeburger MUD-Gruppe zum froehlichen Pizza-Essen in den Pizzahut ein.
Kosten: 4,99 plus Getraenke, Essen bis zum Umfallen :-) Um die Zeit auch voll
auszunutzen, geht es puenktlich um 18 Uhr los. Es gibt sicher wie jedes Jahr
ein Pizza-Wettessen. Angekuendigt hat sich auch bereits Besuch aus dem PK-MUD.
Um genau zu sein sind die PKler (noch) in der Ueberzahl ... Also kommt alle in
Scharen herbei :-)

Jehova

-----------------------------------------------------------------------------



Erloesungsstammtisch Osnabrueck (Do, 6.2.) (Anatol,  5. Feb 2003, 12:59:30):

Osnabrueck wird erloest, und das schon kommendes Wochenende. Da muessen
wir doch noch glatt einen Erloesungsstammtisch abhalten, und zwar 

     Donnerstag, 6.2. (morgen), 20:00 Uhr
     Joe's Saloon, Vitihof 22

Auswaertige bitte kurz bei Varlarion anmelden (von wegen Reservierung).

Diejenigen, die meine Osnabruecker Postanschrift haben - vergesst sie. ;)

Anatol

-----------------------------------------------------------------------------



Bonn Teestube (Liara, 12. Feb 2003, 00:10:57):
Moin!

Samstag, 15.02.2003
11.00 Uhr
Teestube
Teeladen Am Dreieck (Fussgaengerzone)

Wer Lust auf Fruehstueck, Scones oder einfach nur lecker Tee hat, moege mir
buedde eine Mail schicken zwecks Tischreservierung! :)


Liara, lernt gerade fuer ihr Examen und braucht einen Termin, auf den sie sich
freuen kann ;)

-----------------------------------------------------------------------------



Stati in Bonn (Twingi, 12. Feb 2003, 11:59:28):
Hallo Ihr Lieben,

wir treffen und mal wieder und zwar:

am Freitag den 21.02.2003
ab 20:00 Uhr
im Habanero, Belder Berg 20, Bonn

Cocktails, Cocktails, Cocktails,... wer will und dann auch noch kann hat dazu
die Gelegenheit bis 4:00 Uhr in der Frueh.

Zwecks Tischreservierung bitte Mail an mich.
Zwecks Zimmerreservierung wie immer die oertlichen "Hotels" ansprechen ;-)

Magiehexchen Twingi freut sich schon drauf :-)

-----------------------------------------------------------------------------



Mittwoch, 19.2., Duesseldorf (Deepblue, 15. Feb 2003, 21:59:21):
Huhu!
Am 19.2. gibts mal wieder nen Stammtisch in Duesseldorf. Treff ist um 20:00
Uhr im Tigges, Brunnenstr. 1 (am S-Bahnhof Bilk)
Da wir eventuell danach noch in die Altstadt gehen bei Verspaetung am Besten
anrufen.

-----------------------------------------------------------------------------



maerzstati berlin (Pitfall, 21. Feb 2003, 16:11:41):
halloe,

der Maerzstati Berlin wird zugunsten der Party auf den 
28.02.2003 verlegt.
Treffpunkt ist das "Aufsturz", Zeitpunkt 20 Uhr.
Kommet zuhauf, fuer auswaertige Unterhaltung ist
auch gesorgt.

Pit*

-----------------------------------------------------------------------------



April-Stammtisch Hamburg (Kelris, 10. Mar 2003, 17:19:46):
Am Samstag, den 12.04.2003 findet ein Stammtisch in Hamburg statt.

Ort: Backatelle Hamburg-Barmbek
     Fuhlsbuetteler Str. 138
     22305 Hamburg
Anfahrtsweg bei Bedarf unter www.backatelle.de.
Uhrzeit: 19:30

Der Tisch wird unter dem Namen Scheele reserviert.

Gruss, Kelris.

-----------------------------------------------------------------------------



april-stati stuttgart (Leibi, 10. Mar 2003, 18:33:52):
am samstag 12.04. gibts mal wieder einen stati in stuttgart
schaetzungsweise 19 uhr im enchilada.

schreibt mir doch bitte ne mail, wer alles kommt, damit ich einen (dieses mal)
passenden tisch reservieren kann.
danke. 

leibi

-----------------------------------------------------------------------------



Re: april-stati stuttgart (Leibi, 10. Mar 2003, 19:10:34):
~#! rn=Leibi rt=1047317632 rg=treffen.bekanntmachungen
~#! tid=1047317632
da sich fuer den 26.04. ein gott zum stati angekuendigt hat, wird der stati
hiermit verschoben auf den 26.04. um 19 uhr enchilada.
am 12.04. koennen wir aber trotzdem so einen kleinen vorglueh und vor-oster
stati machen ;)
ein special guest kommt da hoffentlich auch.

leibi

-----------------------------------------------------------------------------



Teestube Bonn (Liara, 12. Mar 2003, 19:33:24):
                    SAMSTAG, 15. MAERZ 2003
                 TEESTUBE IM KNUSPERHAEUSCHEN
                            10 UHR
                    im Teeladen am Dreieck
            Naehe Galeria Kaufhof, Fussgaengerzone

    - bitte Anmeldung bei mir zwecks Tischvorbestellung -
  ZZL, freut sich auf ne froehliche Tee-und-Klaaatsch-Runde

-----------------------------------------------------------------------------



Stati in Bonn (Twingi, 12. Mar 2003, 22:37:49):
In Bonn is wieder was los. Wann?

Freitag, den 28.3.2003
ab 20 Uhr
Kneipe steht noch nicht fest. Ich nehm gerne Vorschlaege entgegen.

Special Guest haben wir natuerlich auch und zwar aus Muenster. Es duerfen aber
gerne noch mehr werden ;-)

Anmeldungen zwecks Tischreservierung bitte an mich, zwecks
Uebernachtungsmoeglichkeiten an die "oertlichen Bettenvermietungen", aber das
wisst ihr ja schon alle.

Knuddels Twingi *freche Hexe, was auch sonst ;-)*

P.S. Anfahrtsbeschreibungen sind auch bei mir zu haben.

-----------------------------------------------------------------------------



Stati in Dresden (Deepblue, 12. Mar 2003, 22:42:57):
Dresden laedt ein zu nem Stammtisch!
Wann? 28.3.2003, 20 Uhr
Wo? Triangel, Arnoldstr. 10 (Ecke Pfotenhauer Str.)
Anfahrtsbeschreibung unter www.triangel-dd.de oder per mail

-----------------------------------------------------------------------------



berlin, stati, rudeln, usw (Pitfall, 12. Mar 2003, 22:44:37):
aloa,

aaaaaaaalso am 28.03. ist in berlin im "aufsturz" stammtisch.
am 29. ist danach im informatik komplex der hu berlin ein
kleines rudeln.
ma gucken wie lange es geht.

erscheint zahlreich oder so.

pit*
PS: losgehen tut der stati wie immer 20 uhr

-----------------------------------------------------------------------------



CeBIT Stammtisch in Hannover (Mupfel, 13. Mar 2003, 00:34:10):
Hallo

Wir machen einen Stammtisch am Freitag (15.3.) oder Samstag (16.3.) - wann die
meisten Zeit haben ;) Wenn ich ehrlich sein soll, wir (Jenandra, Varlarion,
Bierchen und ich) sind an beiden Tagen da, und koennten auch an beiden Stati
machen. Fuer Samstag hat sich z.B. Vanion angesagt.
Achja Statiort: das "Exil" in Linden-Mitte, S-Bahn-Haltestelle
Nieschlagstrasse (Linie 9 Richtung Empelde). Fuer Lageplaene etc. schick eine
Mail an stati@chaosburg.de ;)

-mupfel-

-----------------------------------------------------------------------------



Nochmal Hannover, aber 5.4. :) (Olli, 13. Mar 2003, 00:38:38):
Moin,

wo wir gerade bei Hannover-Stammtischen sind: am 5.4. gibts auch einen
hier.... es hat sich ein einzelner Teil der Stuttgarter Fraktion
angekuendigt ;)

Olli
PS: Ort ueberleg ich mir noch, evtl. auch das Exil...

-----------------------------------------------------------------------------



Re: berlin, stati, rudeln, usw (Gnome, 13. Mar 2003, 13:26:05):
~#! rn=Pitfall rt=1047505477 rg=treffen.bekanntmachungen
~#! tid=1047505477
definiere 'danach'.
gleich danach oder nach dem schlafen danach?

-----------------------------------------------------------------------------



Re: Stati in Bonn (Twingi, 17. Mar 2003, 14:07:53):
~#! rn=Twingi rt=1047505069 rg=treffen.bekanntmachungen
~#! tid=1047505069
So noch ein kleiner Nachtrag :-)

Als Kneipe wird hiermit festgelegt
Habanero, Belderberg 2

und noch mal zur Erinnerung

Freitag den 28.3.2003
ab 20:00 Uhr

Knuddels Twingi

P.S. Die Anzahl der Special Guests hat sich mittlerweile auf 2 erhoeht (Ein
muensteraner und ein goettlicher ;-) )

-----------------------------------------------------------------------------



Erinnerung: 28.3. Dresden (Deepblue, 24. Mar 2003, 19:40:55):
Huhu!

Ich wollte nur noch mal an den StaTi am Freitag um 20 Uhr in Dresden erinnern.
Kommet zuhauf!

-----------------------------------------------------------------------------



Stati in Muenster (Areelanir, 26. Mar 2003, 10:46:13):
Es soll mal wieder einen STATI in Muenster geben. Termin ist der 04.04. und es
faengt wie immer 20:06 Uhr an. Ort ist vorerst mal wieder die Frauenstrasse
24, wenn keinem was besseres einfaellt ;-)
man sieht sich da, Areelanir

-----------------------------------------------------------------------------



Re: Stati in Muenster (Puk, 26. Mar 2003, 12:15:50):
~#! rn=Areelanir rt=1048671973 rg=treffen.bekanntmachungen
~#! tid=1048671973
gna, vergebt ihn er ist noch neu :)
stati faengt natuerlich um 20.07 an und nicht 20.06 :)

Puk

-----------------------------------------------------------------------------



Re: Re: Stati in Muenster (Zook, 27. Mar 2003, 22:51:29):
~#! rn=Puk rt=1048677350 rg=treffen.bekanntmachungen
~#! tid=1048671973
Und wo ward Ihr gestern?

Zook hat in der Frauenstrasse 24 ausgeharrt... ;)

-----------------------------------------------------------------------------



Re^3: Stati in Muenster (Areelanir, 28. Mar 2003, 09:39:41):
~#! rn=Zook rt=1048801889 rg=treffen.bekanntmachungen
~#! tid=1048671973
Was habe ich ueberlesen? War gestern bei uns STATI? *kopfschuettel* Ist wohl
irgendwie an mir vorbei gegangen ;-) Aber naechste Woche steht ein offizieller
Termin...

-----------------------------------------------------------------------------



Re: Erinnerung: 28.3. Dresden (Deepblue, 28. Mar 2003, 17:22:39):
~#! rn=Deepblue rt=1048531255 rg=treffen.bekanntmachungen
~#! tid=1048531255
Mangels Interesse FAeLLT der Stati in Dresden AUS

-----------------------------------------------------------------------------



Zur Erinnerung: Stati in Hannover (Mupfel, 28. Mar 2003, 22:42:46):
Am 5.4. ist ein Stati in Hannover, im "Exil", an der S-Bahn-Haltestelle
Nieschlagstrasse (Linie 9 nach Empelde), entgegen der Fahrtrichtung nach
wenigen Metern auf der rechten Seite ;).
Angesagt haben sich bisher: Leibniz, Willow, Olli, Lugia, Bierchen, Jenandra,
Varlarion und meine wenigkeit. Kommet zuhauf, da gibts nette Leute, lecker
Essen und gemuetliche Atmosphaere ;)


-mupfel-

-----------------------------------------------------------------------------



Darmstadt the beautiful .... (Mandragon, 29. Mar 2003, 13:58:16):

... city of beer and mudding cordially invites you to the mudders' roundtable
on April 4th, 2003 in the Hotzenplotz Bar at 8pm (sharp).

Ma*.

P.S.: Freitag, 4.4.03, Stammtisch im Hotzenplotz, Darmstadt

P.P.S.: Es werden Schbeschl Gests erwartet :-)

-----------------------------------------------------------------------------



Re: Zur Erinnerung: Stati in Hannover (Jenandra,  4. Apr 2003, 00:27:08):
~#! rn=Mupfel rt=1048887766 rg=treffen.bekanntmachungen
~#! tid=1048887766
Aktualisierte Teilnehmerliste: Leibniz, Willow, Olli, Lugia, Bierchen,
Jenandra, Varlarion, Mupfel, Vanion und Helium. Ausserdem wahrscheinlich
Vampire und Begleitung.

Beginn ist uebrigens um 19.30h *nachreich*

- Jenandra -

-----------------------------------------------------------------------------



stati stuttgart 26.04.03 (Leibi, 11. Apr 2003, 17:20:34):
hallo zusammen,

ich wollte nur nochmal an den stati am 26.04.03 um 19 uhr im enchilada
erinnern.
wem ich keine mail geschrieben habe, der aber trotzdem kommt, moechte sich
bitte bei mir melden.
danke

leibi

-----------------------------------------------------------------------------



Polarhasen-Alarm in Bonn (Darkwing, 15. Apr 2003, 11:59:33):

Am 15.4. (daher heute) gibts in der Harmonie gegen 20h einen kleinen
Spontan-Stati - zu bewundern sind unter anderen waschechte Polarhase :>

Tisch ist reserviert, wenn wer von ausserhalb spontan genug ist bitte kurz
Bescheid sagen damit es mehr Plaetze werden :)

Darkwing

-----------------------------------------------------------------------------



Stati in Berlin (Pitfall, 23. Apr 2003, 16:53:12):
Huhu,

da wir in unserer schoenen Stadt mal wieder
Besuch von auswaerts haben wird es am Freitag,
dem 25.04. einen kleinen Stammtisch geben.
Treffen ist wie immer 20 Uhr im Aufsturz.

Erscheint zahlreich!


Pit*

-----------------------------------------------------------------------------



Stati in Bonn (Twingi, 27. Apr 2003, 23:28:01):
Hallo zusammen,

bald ist wieder Stati in Bonn :-)

Am Samstag, den 10.5.2003
ab 19:00 Uhr
im Habanero

Es winken bereits diverse Special Guests :-)

Wegbeschreibungen gibbet bei mir. Zimmer auf Anfrage bei den ueblichen
bekannten Stellen ;-)

Knuddels
Twingi *freut sich schon sehr*

P.S. Rueckmeldung ist natuerlich wie immer erwuenscht wegen Tischreservierung.

-----------------------------------------------------------------------------



berliner maistati (Pitfall, 30. Apr 2003, 12:05:37):
moin,

oben besagte Festivitaet ist am 14.05. ab
20 uhr im Aufsturz.

erscheint zahlreich!


-----------------------------------------------------------------------------



Jaaaaaaa, es gibt ihn wieder... (Apollonia,  7. Mai 2003, 12:41:13):
... den Dortmunder Stammtisch!!

Und zwar am Freitag, den 30. Mai 2003, ab 20 Uhr.

Ueber die Kneipe sind wir uns noch nicht ganz im klaren, wird aber rechtzeitig
bekannt gegeben. Und natuerlich wird's eine sein, die man gut mit
oeffentlichen Verkehrsmitteln erreichen kann. 

Falls jemand ne Uebernachtungsmoeglichkeit braucht - 3 Plaetze haetten wir
frei, man wird allerdings um spaetestens 7:30 Uhr geweckt ;o)

Apo*
freut sich schon

-----------------------------------------------------------------------------



mal wieder planaenderung ... (Pitfall, 13. Mai 2003, 13:14:12):
huhu,

der stati morgen wird auf wunsch eines
traegen inaktiven magiers und eines
zwergs der behauptet, dass woanders das
bier billiger sei in den studentenclub in
der mellenseestrasse 41 verlegt.
los gehts ca 20 uhr, kommet zuhauf.

pit*

-----------------------------------------------------------------------------



Re: Jaaaaaaa, es gibt ihn wieder... (Morgoth, 14. Mai 2003, 14:14:40):
~#! rn=Apollonia rt=1052304073 rg=treffen.bekanntmachungen
~#! tid=1052304073
Hi Leuts,

ich hab gestern mal 30 Plaetze reserviert. Eine tolle Wegbeschreibung gibts
bei Nonne unter:
http://ganter.chemie.uni-dortmund.de/~sascha/wegbeschreibung.html

Der Tisch ist ab 2000h reserviert auf den Namen "Birke" :)
Die Leute die in DO uebernachten bitte nochmal melden, wann und wo sie
ankommen, damit wir da auch Wegbeschreibungen verteilen koennen.

M*

-----------------------------------------------------------------------------



Paintball Stuttgart-Boeblingen (Imda, 15. Mai 2003, 13:29:23):
Moin,

wer schon immer mal unschuldige Menschen sinnlos mit Farbe beschmeissen
wollte, der hat am Samstag (17.5.) endlich mal wieder Gelegenheit dazu, und
diesmal in Boeblingen im Wald.

Auf vielfachen Wunsch hier die Details:

Anfahrt:

- A81 Richtung Singen
- Boeblingen-Ost raus
- erste Ampel links nach Schoenaich
- 3. Moeglichkeit links Richtung Muellverbrennungsanlage (Weises Schild). An
der Muelldepomie vorbei und dann gleich rechts und dann bis zur Schranke auf
dem Parkplatz!
(Das ist die Ami-Panzerkaserne)

Treffen spaetestens 9.30, Ausweis mitbringen in diesen schweren Zeiten des
Terrorismus ;)

Kosten:

15 Fragezeichen mit eigener Ausruestung
30 Fragezeichen mit Leihausruestung.
Keine eigene Paint.

Ok, wer mitwill, oder dumme Fragen hat, der schreie moeglichst laut und
moeglichst bald.

Imda.

-----------------------------------------------------------------------------



Stati Halle (Cassandra, 16. Mai 2003, 13:17:49):
Datum: Freitag der 13.6.03
Ort: Wird doch bekanntgegeben
Zeit 20:00
Bei guten Wetter kann der Stati am Samstag im Nordbad weitergefuehrt werden,
wer auf der party war weiss wo ich meine.
Anmeldungen zwecks Tischbestellungen, Wegbeschreibungen (ich werd mir muehe
geben) und Uebernachtungen bitte an mich.

Cassy

-----------------------------------------------------------------------------



stati stuttgart (Leibi, 17. Mai 2003, 17:34:04):
hallo zusammen,

auf wunsch eines polarhasen, gibts mal wieder einen stati in stuttgart. ort
ist dieses mal das 'el chico'. da gibts mindestens so leckere cocktails wie im
enchilada und das essen ist auch ok.
termin ist der 30.5. (das ist sogar mal ein freitag :) so ab 20 uhr.

leibi - freut sich wie immer ueber anmeldungen!

-----------------------------------------------------------------------------



Re: stati stuttgart (Leibi, 22. Mai 2003, 19:05:11):
~#! rn=Leibi rt=1053185644 rg=treffen.bekanntmachungen
~#! tid=1053185644
kleine aenderung des statis (damit auch plueschdrachen vorbeischauen)
termin ist nun donnerstag 29.5. ab 19 uhr im el chico.

bis dann
leibi

-----------------------------------------------------------------------------



Re: Stati Halle (Cassandra,  4. Jun 2003, 10:23:09):
~#! rn=Cassandra rt=1053083869 rg=treffen.bekanntmachungen
~#! tid=1053083869
Kleine Aenderung

Stati wird auf Donnerstag den 12.6 vorverlegt.
Zeitpunkt bleibt 20 Uhr
Treffpunkt ist vor dem NT-Cafe, wir suchen uns dann ne nette Kneipe
wenn ich das richtig mitbekommen habe, haben wir da sogar Gaeste.

Wegen wegbeschreibung etc Mail bitte an mich.

Cassy

-----------------------------------------------------------------------------



STATI in Muenster (Areelanir,  8. Jun 2003, 18:35:09):
Wir machen mal wieder ein Stammtischtreffen in Muenster. Wie immer in der
Frauenstrasse 24 und wie immer ab kurz nach 20:00 Uhr. Stattfinden soll das
Ganze am 19.06., also kommt zahlreich :-)
Gruss aus Muenster, Areelanir

-----------------------------------------------------------------------------



Grillen in Muenster (Puk, 10. Jun 2003, 00:43:57):
Holla, gleich nochmal Nachrichten aus Muenster :)
Zum voreinstimmen auf dem Stammtisch am 19.06 machen wir dann am kommenden
Freitag, fuer kleinkarierte das ist der 13.06 (jaaaaaaaaaaaaa, ein Freitag der
13te ) ein Grill Event.

Wo ? Na natuerlich bei Catty :) Anfragen fuer Wegbeschreibungen richtet bitte
direkt an ihn, auch wenn ihr gar nicht kommen wollt, er freut sich immer wenn
man mit ihm spricht :)

Uhrzeit ? na 19 Uhr , wann den sonst ?

Wer ? Alle die lust auf gute Laune haben :)

Puk, aergert Catty gerne

-----------------------------------------------------------------------------



Re: Grillen in Muenster (Catweazle, 10. Jun 2003, 10:10:21):
~#! rn=Puk rt=1055198637 rg=treffen.bekanntmachungen
~#! tid=1055198637
Dir ist aber schon klar, dass der 19. Happy Kadaver ist, ja? Ist da nen
Stammtisch sinnig? Hat F24 da ueberhaupt auf?

YTC

-----------------------------------------------------------------------------



Grillen-Dresden-20.06.2003-20:00-bei-Mesirii (Mesirii, 12. Jun 2003, 11:53:30):
Liebe Mitmudder,

am Freitag, 20.06.2003 ist Grillen bei mir angesetzt, los geht es
ca. 20:00, Grill,Holzkohle und Toast ist vorhanden. Wenn Ihr Bedarf
anmeldet kann ich noch:

- Steaks, Wuerste
- Bier

besorgen, dazu mir aber spaetestens bis Mittwoch Bescheid geben, ob und
wieviel Ihr davon jeweils haben moechtet.

Alternativ koennt Ihr natuerlich Euch auch gern selbst was mitbringen. Salate
und so waeren ja auch nicht schlecht.

Schlafmoeglichkeiten gibts bei uns in der Haus-Kommune eigentlich genug,
ausserdem isses ja auch warm genug zum Zelten vorm Haus :).

Bis jetzt haben schon 6 Leute sicher und 1 + x Auswaertige unsicher
angemeldet.

Anfahrt: Mathildenstr. 4, 01069 Dresden, Route gibts bei jedem Routenplaner.

Gruss Mesi

-----------------------------------------------------------------------------



Grillen am Kemnader See (Bochum/Witten), 21.06.03 (Thufhir, 14. Jun 2003, 16:16:56):
Liebe Mudgemeinde,
am Samstag, den 21.06.2003 moechten wir etwas totes Tier ueber Holzkohle
garen. Treffen wollen wir uns deshalb bei schoenem Wetter vor dem Freizeitbad
Heveney (Wegbeschreibungen koennen bei mir angefordert werden, sind aber nicht
zwingend zwergensicher) um 16:00 Uhr. Sollte irgendwer spaeter erscheinen
wollen, so kann er/sie meine Handynummer erfragen, um den genauen Ort zu
erfahren. Grillfleisch, Getraenke und was sonst noch verschnabuliert werden
soll ist bitte selbst mitzubringen. Bei schlechtem Wetter werden wir auf eine
Kneipe ausweichen und diese dann am Freitag bekanntgeben. Wegen der
eventuellen Reservierung der Kneipe waere eine Voranmeldung angebracht.

s'Zauberzwerch Thufhir

-----------------------------------------------------------------------------



Re: STATI in Muenster (Foobar, 15. Jun 2003, 17:45:23):
~#! rn=Areelanir rt=1055090109 rg=treffen.bekanntmachungen
~#! tid=1055090109





NEWSFLASH









Der StaTi wird aus unbekannten Gruenden (naja, jedenfalls fuer Euch unbekannt)
auf einen noch zu nennenden Termin verschoben.

Mit zwergischem Gruss,

   Foobar

-----------------------------------------------------------------------------



Stati Muenster (Gorog, 18. Jun 2003, 11:20:34):
Moins

Aus aktuellem Anlass wird ein Spontantreffen am Samstagabend in der
Frauenstrasse 24 (F24) stattfinden. Sollte jemand den Weg nicht kennen oder
niemanden kennen der den Weg kennt, darf er/sie sich an mich bezueglich einer
Wegbeschreibung wenden. Beginn wird wohl so gegen 20.07 sein (+/- 7 Minuten).

Bis dahin
Gorog

-----------------------------------------------------------------------------



Goettlicher HH-StaTi! (Kelris, 23. Jun 2003, 18:48:04):
Huhu,
Zooks Aufenthalt in Hamburg nehmen wir zum Anlass einen Sonder-StaTi zu
veranstalten.

Tag: 2.7.2003
Ort: Backatelle-Barmbek
Weg: http://www.backatelle.de/Filiale_Barmbek/Karte_Barmbek/karte_barmbek.html
Uhrzeit: 19:00 MEZ

Ueber weiteren externen Besuch wuerden wir uns sehr freuen!

Gruss, Kelris.

-----------------------------------------------------------------------------



Re: Goettlicher HH-StaTi! (Kelris, 23. Jun 2003, 18:50:45):
~#! rn=Kelris rt=1056386884 rg=treffen.bekanntmachungen
~#! tid=1056386884
Update: Goettlicher HH-StaTi!


Der Tisch ist auf den namen Scheele reserviert.

Gruss, Kelris.

-----------------------------------------------------------------------------



Berlin (Pitfall, 29. Jun 2003, 21:44:35):
Moin,

am 04.07.2003 ist mal wieder Stammtisch in Berlin.
Das Ganze wird wie gewoehnlich im 'Aufsturz'
stattfinden.

Alle hin da ... oder so aehnlich.

Gruss
Pit*

-----------------------------------------------------------------------------



Zuerich City (Anoris,  5. Jul 2003, 01:10:12):

Gruezi Mitaenand

Am Mitwuch Obig um di 7ni, waerae mer im Vorbahnhof z Zueri
amaenae Stati z findae.

Ihr sit ali haerzlichscht igladae, dra teil z naeh!

Bi Frogae oder Wegbeschriebigae, choend er eu jederzit
a mi waendae.

Bis gli!

- Anoris

-----------------------------------------------------------------------------



Stati Hannover (Mupfel, 12. Jul 2003, 15:00:46):
Da ich grade mal wieder in Hannover weile, kuendige ich mal einen Stati an ;)
Wie immer im "Exil", Hannover-Linden, gegenueber der Haltestelle
"Nieschlagstrasse" der Linie S-9 Richtung Empelde. So gegen 20 Uhr. Wenns warm
genug ist, sitzen wir draussen...

-mupfel-

-----------------------------------------------------------------------------



Stammtisch in Halle - kurzfristig ;o) (Gitarre, 13. Jul 2003, 22:12:10):
Hallo zusammen,

ich weiss ja, dass niemand Zeit hat und da sein wird (ausgenommen das
Orga-Team Halle), aber am Montag, den 14.7. gibts ab 20 Uhr nen Stammtisch in
Halle.
Wer doch Lust und Zeit hat, zu kommen, meldet sich am besten per Mudmail oder
Telefon bei einem von uns (Caren, Cassandra oder mir), da der Treffpunkt noch
nicht ganz feststeht.

Viele Gruesse

Gitarre

-----------------------------------------------------------------------------



StaTi Bochum, 25.07. (Thufhir, 15. Jul 2003, 15:44:18):
Huhu,

auf Wunsch einer in Bochum Japanisch lernenden Person rufe ich fuer Freitag,
den 25. Juni ab 20:00 Uhr einen Stammtisch aus. Treffpunkt wird sehr
wahrscheinlich wieder die Rollenspielerkneipe "Zu den vier Winden" sein. Falls
die uns an dem Tag dort nicht unterbringen koennen, so gebe ich den neuen Ort
noch rechtzeitig hier bekannt. Wegbeschreibungen gibts bei allen Bochumern
oder auch ohne Zwergensicherheits-Garantie bei mir.

s'Zauberzwerch Thufhir

-----------------------------------------------------------------------------



SpontanStati in Bonn (Twingi, 16. Jul 2003, 18:26:35):
Hallo zusammen,

auf Wunsch eines Knochentreterchens findet ein kleiner Spontanstammtisch im
schoenen Bonn statt.

Freitag, den 18.07.2003
ab 19:00 Uhr
Ort: "Seelige Witwe" in der Koenigstrasse

Wegbeschreibungen auf Anfrage ;-)

Anmeldungen zwecks Tischreservierung bitte an mich.

Twingi *freut sich auf ein kuehles Bier*

-----------------------------------------------------------------------------



Re: StaTi Bochum, 25.07. (Thufhir, 23. Jul 2003, 10:48:38):
~#! rn=Thufhir rt=1058276658 rg=treffen.bekanntmachungen
~#! tid=1058276658
Nochmal kurz huhu,

der Stati wird wie geplant am Freitag in den "Vier Winden" stattfinden. Man
hat mir zugesichert, dass man dort am Freitag Platz fuer eine Horde
verrueckter Mudder hat und dass Met und Byzantiner in ausreichender Menge
vorhanden sind.

Also erscheinet zahlreich und erfreuet Euch auch diesmal wieder an seltenen
Gaesten.

s'Zauberzwerch Thufhir

-----------------------------------------------------------------------------



Sonder-Stammtisch (Morgoth,  3. Aug 2003, 21:59:57):
Hi

auf mehrfachen Wunsch eines einuelnen Mudders gibts am 8.8. (diesen Freitag)
mal wieder in DO einen Stammtisch. Wie immer um 2000h und auch wieder im
America (Alkohol aus Eimern!!!).

M*

-----------------------------------------------------------------------------



Stammtisch in Karlsruhe am 7. August (Boing,  5. Aug 2003, 10:22:37):
Da der Kleine Meierhof die nchsten zwei Wochen urlaubsbedingt
geschlossen hat, haben wir uns fuer Donnerstag 7. August auf
das Stoevchen geeinigt. Vom Europaplatz aus nach Sueden, die 
zweite rechts (Amalienstrasse) und dann gleich wieder links
(Waldstrasse). Dort ist es nach etwa 100 Metern auf der rechten
Seite. Das Teil hat einen Biergarten im Hinterhof, falls das
Wetter gut ist (was anzunehmen ist).
Uhrzeit wie immer 20 Uhr.

  Boing

-----------------------------------------------------------------------------



Wegbeschreibung zum Stati in DO (Nonne,  7. Aug 2003, 20:18:07):
http://ganter.chemie.uni-dortmund.de/~sascha/priv/wegbeschreibung.html

Nonne.

-----------------------------------------------------------------------------



Stati in Frankfurt/Main (Ronda,  9. Aug 2003, 12:43:53):
Hallo,

mit goettlicher Genehmigung wage ich es, endlich mal wieder einen Stammtisch
in Frankfurt/Main auszurufen.

Am 8. September ab 19 Uhr gibts Chicken Wings all you can eat ;-)

Das ganze steigt in der Sports Bar Frankfurt, Am Marktplatz,
Frankfurt/Main-Hoechst. Es macht Sinn, vor acht Uhr da zu sein, da es bis dann
Cocktail-Happy Hour gibt...

Anfahrtbeschreibungen etc. gibts bei mir - sagt bitte vorher Bescheid ob Ihr
kommt, damit wir entsprechend viele Tische organisieren koennen...

Ronda

Ps: Um zu testen, ob die Kneipe auch wirklich muddertauglich ist: am Montag,
11.8. wuerd ich da auch gern hingehen. Hat jemand von Euch kurzfristig Zeit
und Lust?

-----------------------------------------------------------------------------



STATI in Muenster (Areelanir, 10. Aug 2003, 11:06:47):
Es soll mal wieder soweit sein. Am 22. 8. findet in Muenster mal wieder ein
STATI statt. Treffpunkt ist wie immer um kurz nach 20 Uhr in der Frauenstrasse
24. Bei besseren Vorschlaegen laesst sich die Oertlichkeit aber auch wechseln
:-) Kommet zahlreich!
Areelanir

-----------------------------------------------------------------------------



KA-StaTi am 14.8 (Croft, 12. Aug 2003, 12:17:42):
Da der Kleine Meierhof immer noch urlaubsbedingt geschlossen ist, geht
es am 14.8 mal wieder ins Moninger Brauhaus (dort gabs die leckeren
Schnitzeln).  Das Brauhaus befindet sich in der Kaiserstr. 142, direkt
oestlich des T-Punktes am Europaplatz.  Vom Passagehof (aus Richtung
Kurbel) kommt man auch direkt in den Biergarten, in dem wir dann wohl
sitzen werden, solang das Wetter nicht doch ueberaschenderweise in
Regen umschwenkt.

Croft

-----------------------------------------------------------------------------



Stati in Trier am 19. 8. (Bran, 17. Aug 2003, 17:47:57):
Es ist auf geheimen Bahnen durchgesickert, dass sich in der kommenden Woche
einige Mudder in Trier aufhalten. Auf mehrfachen Wunsch halten wir bei der
Gelegenheit einen Stati ab, und zwar am 

*** Dienstag, dem 19. August, ab 19 Uhr ***.

Der Ort steht noch nicht fest, wird aber so schnell wie moeglich nachgereicht.

Bisher sind wir 6, waere schoen, wenn noch mehr von Euch dazukommen! Eine
Uebernachtungsmoeglichkeit gibt es, wenn Ihr Isomatte und Schlafsack
mitbringen koennt.

Bran

-----------------------------------------------------------------------------



Stati in Trier am 19. 8. (Bran, 17. Aug 2003, 20:11:54):
Also: Der Stati findet ab 19.00h statt im Restaurant Diamanti, Paulinstrasse
100 (Ecke Zeughausstrasse). Wegbeschreibung in treffen.wegbeschreibungen. Ist
ein Inder mit Pizzeria, wo man auf Kissen auf dem Boden sitzen kann, sehr
nett. Wer hier uebernachten will, moege mir wegen der Fruestuecksplanung bitte
Bescheid sagen (Mail ins Mud, Schlafsack und Isomatte mitbringen)!

Bran

-----------------------------------------------------------------------------



Stati in Bonn (Twingi, 21. Aug 2003, 19:34:01):
Hallihallo,

naechsten Freitag ist wieder Stati-Time in Bonn.

29.08.2003
ab 20:00 Uhr
in der Harmonie in Endenich

Specialguest: Eine oesterreichische Pflanze

Zimmerreservierung wie immer bei den oertlichen Hoteliers ;-)
Wegbeschreibungen bei mir.

Knuddels Twingi

P.S. Die Harmonie befindet sich immer noch in der Frongasse in Bonn-Endenich

-----------------------------------------------------------------------------



Spontanstammtisch Hamburg (Troy, 22. Aug 2003, 21:03:53):
~#! on=Troy ot=1061578978 og=treffen
Hallo Leute

wegen Besuchs von Miril und Lamor machen wir am

Dienstag, den 26. August im
Schachcafe am S-Bahnhof Ruebenkamp
um 19:30 Uhr
einen Spontanstammtisch

Ob ich noch ne Reservierung hinkriege, weiss ich nicht, aber es sollte auch
so genug Platz da sein.

Troy

-----------------------------------------------------------------------------



Offizieller Berliner Septemberstammtisch... (Pitfall, 27. Aug 2003, 17:21:42):

... wird am 05.09.2003 ab ca 20 Uhr
im Aufsturz stattfinden.

Erscheint zahlreich.

Pit*

-----------------------------------------------------------------------------



Re: Stati in Halle (Saale) (Gitarre, 28. Aug 2003, 17:19:45):
~#! on=Gitarre ot=1062016698 og=treffen
~#! rn=Gitarre rt=1061900628 rg=treffen
~#! tid=1061900628
Hallo zusammen,

als Kneipe kristallisiert sich fuer den Hallenser Stammtisch am Samstag der
Sargdeckel heraus. Wird morgen angetestet. Anfangen tuts auf jeden Fall 19
Uhr.

Gitarre - Orga Team Halle 


-----------------------------------------------------------------------------



Stammtisch in Halle am Samstag (Gitarre, 28. Aug 2003, 23:39:05):
Hallo,

der Test im "Sargdeckel" war hochzufriedenstellend. Also am Samstag ab 19 Uhr
ist im "Sargdeckel" (im OeSA-Gebaeude, Adam-Kuckhoff-Str. 39-41) Stammtisch.
Ich habe auf den Namen "Morgengrauen" reserviert.

Kommt zahlreich!

Gitarre

-----------------------------------------------------------------------------



Re: Stati in Frankfurt/Main (Ronda,  4. Sep 2003, 21:05:22):
~#! rn=Ronda rt=1060425833 rg=treffen.bekanntmachungen
~#! tid=1060425833
Hallo,

da die erste Ankuendigung schon laenger her ist: Naechsten Montag - 8.9. -
findet ein weiterer Chicken Wing Stammtisch in Frankfurt/Main (Hoechst) statt.

Bitte sagt Bescheid, wenn Ihr kommen wollt, damit wir entsprechend viel Platz
ergattern...

Genau: Start: 19 Uhr. Denn bis 20 Uhr gibt es Happy Hour fuer Cocktails.

Ronda

-----------------------------------------------------------------------------



Stati in Bochum, 13.9 (Thufhir, 10. Sep 2003, 18:46:58):
Huhu,

am Samstag den 13.9. wird ab 20:00 Uhr mal wieder ein Stati stattfinden.
Voraussichtlich wieder in den vier Winden. Wir haben einen Special Guest, der
definitiv nicht allzu oft in Bochum anzutreffen ist. Wegbeschreibungen gibts
auf Anfrage bei mir. Ich bitte um kurze Rueckmeldung wenn moeglich. Sollte
sich der Ort noch aendern, geb ich das rechtzeitig bekannt.

Gruss, s'Zauberzwerch

-----------------------------------------------------------------------------



Re: WWW (Zooki, 11. Sep 2003, 10:10:27):
~#! rn=Deepblue rt=1063014185 rg=treffen
~#! tid=1063014185
Eine aktualisierte Liste der regelmaessigen MG-Statis ist nun angeschlossen.
Bei Aenderungen, Ergaenzungen, o.ae, schreibt mir (aeh... meinem Ersti)
eine Email. Vielen Dank an Deepblue fuers Ueberarbeiten und Nachfragen.

Zook.

-----------------------------------------------------------------------------



Re: Stati in Bochum, 13.9 (Thufhir, 11. Sep 2003, 22:02:38):
~#! rn=Thufhir rt=1063212418 rg=treffen.bekanntmachungen
~#! tid=1063212418
Hallo nochmal,

dringende Aenderung: nach einigem Hickhack und vielem Hin und Her findet der
Stati jetzt NICHT am Samstag dem 13. sondern am Freitag (ja, das ist bereits
schon morgen) statt. Die Uhrzeit bleibt die gleiche. Ne Adresse und ne
wegbeschreibung findet sich in treffen.wegbeschreibungen.

Ich bitte um Entschuldigung fuer den Terminkrampf.

s'Zauberzwerch Thufhir

-----------------------------------------------------------------------------



Stati in Bonn (Twingi, 15. Sep 2003, 20:53:17):
Hallo zusammen,

Wir machen mal wieder einen Stammtisch in Bonn.
Natuerlich haben wir auch wieder Special-Guests :-)

Freitag, den 3.10.2003
ab 20:00 Uhr
in der Harmonie, Frongasse 30, Bonn Endenich

Zusagen an mich zwecks Tischbestellung, Absagen an den Papierkorb, da nicht
akzeptabel.
Anfahrtsbeschreibungen und Zimmerwuensche wie gehabt ;-)

Knuddels
Twingi

-----------------------------------------------------------------------------



stuttgart stati 16.9. (Leibi, 16. Sep 2003, 00:18:44):
huihu zusammen,
ich glaube das mit der richtigen rubrik muss ichnochmal ueben.
also morgen ist noch immer stati, ich mein heute, also nachher: 
also 16.9. ab 19 uhr im enchilada. 
happy hour ist von 19 bis 20 uhr und ab 23 uhr wieder

leibi - kauft sich bald ein ampelshirt

-----------------------------------------------------------------------------



Duesseldorf (Deepblue, 22. Sep 2003, 20:04:11):
Morgen (23.9.) 21.00 Uhr im Tigges (gleich am S-Bahnhof Bilk). Die Kneipe ist
in Map24 eingezeichnet.

-----------------------------------------------------------------------------



Sonderstati in Bonn (Twingi, 22. Sep 2003, 20:53:21):
Hallo,

da diesen Donnerstag ein EM in Bonn weilt, setze ich hiermit einen Sonderstati
an.
Donnerstag, 25.10.03
ab 19:00 Uhr
in der Harmonie, Frongasse 30 in Bonn-Endenich

Rueckmeldungen, etc wie immer :-)

Twingi

-----------------------------------------------------------------------------



Re: Sonderstati in Bonn (Twingi, 22. Sep 2003, 20:56:55):
~#! rn=Twingi rt=1064256801 rg=treffen.bekanntmachungen
~#! tid=1064256801
Hangl...

das musste antuerlich Donnerstag den 25.09.03 heissen ;-)

-----------------------------------------------------------------------------



Re: Re: Sonderstati in Bonn (Toe, 22. Sep 2003, 20:59:21):
~#! rn=Twingi rt=1064257015 rg=treffen.bekanntmachungen
~#! tid=1064256801
am 25.10. sind wir ja auch ganz weit weg...

-----------------------------------------------------------------------------



Sonderstati Marburg (Zook, 22. Sep 2003, 21:05:24):
Am 9. September fand ein Sonderstati in Marburg statt. Von 20.00 Uhr an
trafen wir uns im Caveau und hatten sehr viel Spass. Neben Sniper, 
Rasputin und meiner einer war auch noch ein Gast1 da. Prima Sache, wirklich!

Zook.

-----------------------------------------------------------------------------



Flammkuchen (Anoris, 24. Sep 2003, 10:36:19):
Am 4. Oktober, voraussichtlich Aux Vieux Moulin (der Alten Muehle), werden
wir uns zum Vernichten der <siehe Betreff> einfinden.

Das Essen findet sowieso statt, ueber viel Besuch wuerden wir uns freuen.

Bei Interesse bitte per MudMail bescheid, dass ich Plaetze organisieren
kann. Sollte die Alte Muehle ausgebucht sein, wird eine Alternative,
ebenfalls mit Flammkuchen, zur Verfuegung stehen.

Liebe Gruesse
- Anoris

P.S. Zeit-/Treffpunkt etc..., werden noch bekannt gegeben.

-----------------------------------------------------------------------------



0210032000KAKM (Catweazle, 28. Sep 2003, 21:38:54):
So.

YTC

-----------------------------------------------------------------------------



abschiedsstati von seleven in stuttgart :) (Leibi, 29. Sep 2003, 12:51:37):
huhu zusammen,
nachdem unsere suesse seleven aus dem wunscherschoenen stuttgart wegzieht,
machen wir am mittwoch ab 19 uhr noch einen stati im enchilda.
bitte schreibt mir kurz ne mail, damit ich mal wieder plaetze reservieren
kann.

gruss leibi

ps happy hour ist noch immer bis 20 uhr und ab 23 uhr :)

-----------------------------------------------------------------------------



Oktoberstati Berlin (Pitfall, 30. Sep 2003, 07:39:08):
Moin,


der Oktoberstati in Berlin wird anscheinend
nicht wie geplant am ersten Freitag des Monats
im Aufsturz stattfinden. Naeheres dazu weiss 
sicher Birdy. Der war allerdings bisher noch 
nicht dazu in der Lage mir genaue Infos dazu
zu geben. Wendet Euch also einfach an Ihn.

Pit*


-----------------------------------------------------------------------------



Treffen auf der Spielemesse (Montanus, 30. Sep 2003, 10:39:11):
23. bis 26. Oktober.
Grugahallen.
Essen.
Diesmal haben wir einen eigenen Stand, wer also mal auf ein Hallo oder ein
Bohnenspiel vorbeikommen will: Halle 9, Stand 14.

-----------------------------------------------------------------------------



Flammkuchen (2) (Anoris, 30. Sep 2003, 10:46:42):
Wie versprochen hier noch das Update zu <subject>. 4. Oktober, 20:30
Aux Vieux Moulin (bei der Alten Muehle). Aktuell sind wir 10, reserviert
ist auf "Goldinger". Wir nehmen Tassram vom Waldparkplatz mit und haetten
somit von KA aus noch 1 - 2 Plaetze, sollte wer mitfahren wollen.

Liebe Gruesse
- Anoris

-----------------------------------------------------------------------------



Re: Oktoberstati Berlin (Birdy,  5. Okt 2003, 19:20:45):
~#! rn=Pitfall rt=1064900348 rg=treffen.bekanntmachungen
~#! tid=1064900348
AAAAlso,

Pittiplatsch hat mir das Ausrufen des monatlichen Stammtisches uebertragen, da
er da nicht in B sein wird.
Ich bin da zwar auch nicht da, aber ich denk, dass trotzdem wieder ein paar
Leutchen am Freitag, den 10.10.03 um 20.00 Uhr ins "Aufsturz" kommen werden.
MAcht euch dann mal Gedanken, ob wir wirklich einen Stati beim Bowling amchen
wollen, die Resonanz auf meine Idee war laut und positiv gewesen, aber
Rueckmeldungen, wer kommt, gabs nur 4. Die meisten Berliner MGler seh ich ja
dann am Sonnabend bei Rochus. 

D.w.

-----------------------------------------------------------------------------



Re: Re: Oktoberstati Berlin (Rochus,  5. Okt 2003, 21:40:49):
~#! rn=Birdy rt=1065374445 rg=treffen.bekanntmachungen
~#! tid=1064900348
So, den meisten hab ich es zwar schon gemailt,
aber da ich einige vergessen habe nochmal zur Sicherheit hier:
Am Samstag, den 11.10., ist bei mir Abschieds-Chili angesagt... ich
ziehe um nach Dortmund...
Mann sollte so ab 16 Uhr erscheinen, serviert wird dann irgendwann
zwischen 18 und 19 Uhr denke ich... Wer vor 15 Uhr da ist darf
mithelfen Zwiebeln schneiden :-)
Wie immer: Ich mach das Chili, Ihr besorgt die Getraenke... keine
Sorge, es gibt auch Brot zum Chili :)
Wer inzwischen immer noch nicht den Weg kennt moege
sich bei mir melden :)

  Rochus

-----------------------------------------------------------------------------



DA08102003HP2000 (Mandragon,  6. Okt 2003, 17:28:23):

Ark und ich haben beschlossen, mal wieder Pizza essen zu gehen. Und
zwar am naechsten Mittwoch (8.10.03) um 20:00 im Hotzenplotz.

Wegbeschreibung bei den genannten Verdaechtigen oder in treffen.wegbesch

Ma*

-----------------------------------------------------------------------------



Stammtisch Werne, 11.10.2003 (Olli,  9. Okt 2003, 10:47:55):
Moin,

aufgrund Besuch veranstalten wir spontan einen Stammtisch in Werne a.d.L.,
und zwar am kommenden Samstag um 19:00 in der Brasserie.
Wegbeschreibung gibts auf Anfrage :)

Olli

-----------------------------------------------------------------------------



Re: Re: Oktoberstati Berlin (Gnome, 10. Okt 2003, 19:22:00):
~#! rn=Birdy rt=1065374445 rg=treffen.bekanntmachungen
~#! tid=1064900348
moechte hier nochmal kurz draufhinweisen, dass der berliner stati inner
guten halben stunde beginnt. :)

gnOme

-----------------------------------------------------------------------------



Novemberstati Berlin (Pitfall,  5. Nov 2003, 09:41:08):
Moin,

der Novemberstati in Berlin wird am 07.11. ab 20
Uhr im Aufsturz stattfinden.
Ich glaube, es gibt auch "Special Guests".

Pit*

-----------------------------------------------------------------------------



Novemberstati Bonn (Padreic,  8. Nov 2003, 18:59:39):
Inzwischen ist es ja nun schon richtig Tradition, drum gibt es auch diesen
November wieder einen Stati bei mir aufm Dachboden. Auch wenns diesmal etwas
kurzfristig ist, hoffe ich wieder auf viele nette Gaeste :o).

Wann: 15.11.03, ab 19:00
Wo: Wiesenweg 24, Bonn

Jeder der kommen will, ist herzlich eingeladen. Eine kleine Rueckmeldung
Zwecks Planung waere gut - auch wenn wir ein paar spontan Gaeste immer noch
versorgt bekommen. Da ich inzwischen noch ein wenig mehr Platz hab, koennen
auch noch ein paar Leute mehr bei mir pennen, dies aber bitte nur mit
Vorabsprache :o).

Pad*

-----------------------------------------------------------------------------



Laola Landau (Bambi, 11. Nov 2003, 13:22:00):
Wenn wer Lust hat, am 20.11.2003 mit Echse und mir da hinzugehen, melde
er/sie/es sich bei mir.
Zum Anschauen: http://www.la-ola.de/
Wen die vielen Leute auf den Fotos abschrecken: Normalerweise ist es dort
wesentlich leerer. Unter der Woche sowieso.

-----------------------------------------------------------------------------



Sonderstati Berlin (Pitfall, 11. Nov 2003, 23:39:21):
Moin,

am 14.11. wird ein Sonderstammtisch im Aufsturz
stattfinden. Startzeit ist wie immer 20 Uhr.

erscheint zahlreich!
pit*

-----------------------------------------------------------------------------



Hamburg, 15.11. (Bielefeld, 12. Nov 2003, 22:41:50):
Moin!

Die Hamburger (und mindestens zwei auswaertige Sondergaeste)
treffen sich auch mal wieder, diesmal am 15.11. ab 19 Uhr
im Schachcafe (Ruebenkamp 227, 22307 Hamburg). Am besten zu
erreichen mit der S-1 Haltestelle Ruebenkamp und von da noch
ca. 2 Minuten zu Fuss.

Kommet zuhauf!
-Bielefeld

-----------------------------------------------------------------------------



Re^3: stuttgart stati 20.12. (Leibi,  2. Dez 2003, 21:21:54):
~#! rn=Ronda rt=1070396445 rg=treffen
~#! tid=1070395251
also dann machen wir das mal fest:
20.12.03 im enchilada ab 18 uhr
erscheint zahlreich mit vielen geschenken ;)

leibi freut sich schon au die cocktails

-----------------------------------------------------------------------------



Stati in Trier (Bran,  8. Dez 2003, 00:40:26):
Ein bisschen kurzfristig und vielleicht etwas dicht nach der Party, aber da
ich kommende Woche Mudder-Besuch hab, wollte ich mal wieder nen Stati in Trier
ankuendigen, und zwar am  14. 12. (Samstag), ab 19:30 im Louisiana
(Wegbeschreibung kommt noch). Immerhin eine knappe Woche zum Regenerieren.

Fuer 2-3 Leute gibt's Matratzen und Decken, wenn es mehr werden, braeuchtet
Ihr Isomatten und Schlafsaecke zum Uebernachten. Platz ist jedenfalls genug.

Waer schoen, wenn Ihr mir kurz hier Bescheid sagen wuerdet!

Liebe Gruesse! Bran

-----------------------------------------------------------------------------



Stati in Trier - Korrektur (Bran,  8. Dez 2003, 00:45:09):
Nicht am 14., sondern am 13. Sonst bleibts aber dabei :)

Bran, schon etwas muede :)


-----------------------------------------------------------------------------



Re: Stati in Trier - Korrektur (Brotnael,  8. Dez 2003, 12:37:58):
~#! rn=Bran rt=1070840709 rg=treffen.bekanntmachungen
~#! tid=1070840709
Kommt doch an den Tag nach berlin zu unserer Party, da feiern wir mindest zu
200, da brauchst du keine Matratzen mehr :o)
Brot, wird immer munterer :o))

-----------------------------------------------------------------------------



Dezemberstammtisch - Berlin (Pitfall,  9. Dez 2003, 09:21:38):
Moin,

Der Dezemerbstati in Berlin wird am 12.12. ab 20 Uhr
im Aufsturz stattfinden. Sondergaeste gibt es auch
und fuer den groesseren Hunger werden wir uns einfach
ein paar kleine Kinder fangen oder so.

Erscheint zahlreich!
Pit*

-----------------------------------------------------------------------------



Re: Dezemberstammtisch - Berlin (Zook,  9. Dez 2003, 09:31:44):
~#! rn=Pitfall rt=1070958098 rg=treffen.bekanntmachungen
~#! tid=1070958098
Ok, ich trinke dann am 15. wieder alleine mein Bier im Aufsturz.

Zook.

-----------------------------------------------------------------------------



Stati am 13. 12. in Trier (Bran,  9. Dez 2003, 20:06:14):
Nochmal anders: Wir machen das jetzt doch nicht in der Kneipe, wo man
irgendwann wieder raus ins Kalte muss, sondern direkt bei mir zu Hause, ab
irgendwann nachmittags. Mit gemeinsamem Kochen (und natuerlich Essen).
Wahrscheinlich viele, viele Pfannkuchen mit genauso vielen verschiedenen
Sachen fuer drauf, (c) Ronda. Wegbeschreibung gibt's auf Anfrage bei mir. Bis
dann!

Bran (freut sich schon :)

-----------------------------------------------------------------------------



Re: MS-Gluehwein (Catweazle, 11. Dez 2003, 10:39:33):
~#! rn=Catweazle rt=1071086577 rg=treffen
~#! tid=1071086577

Ich sach jetzt mal einfach an Fuer MS:

Naechsten Donnerstag (18.12.) gibts GluehweinTrinken am Aegidiihof, auf dem
Platz vorm Museum, der Gluehweinstand ganz links an der Ecke
(Gluehwein&Gruenkohl), quasi neben der Bushaltestelle (Richtung Landgericht).
Zeit, hm. 19:00 Uhr?
Und hinterher koennen wir dann in ein Kneipchen verschwinden (wer da dann noch
hinkommt), welches das wird entscheiden wir dann spontan.

Kommet zuhauf!

YTC

-----------------------------------------------------------------------------



goettlicher besuch... (Zook, 11. Dez 2003, 20:08:43):
~#! on=Gnome ot=1071169659 og=treffen
...erwartet uns kommende woche.
wer lust hat, mit uns beiden zu plaudern/saufen, mag sich am abend
des kommenden montags gegen 20:00 im aufsturz einfinden.
ob wir dann dort bleiben werden, haengt von lust und laune ab.

gnOme

-----------------------------------------------------------------------------



Re: goettlicher besuch... (Zook, 14. Dez 2003, 21:23:12):
~#! rn=Zook rt=1071169723 rg=treffen.bekanntmachungen
~#! tid=1071169723
Kommt noch jemand oder trink ich alleine? ;)

Zook.

-----------------------------------------------------------------------------



Re^4: stuttgart stati 20.12. (Leibi, 15. Dez 2003, 20:18:00):
~#! rn=Leibi rt=1070396514 rg=treffen.bekanntmachungen
~#! tid=1070395251
huhu zusammen,
nachdem sich nich so viele bei mir angemeldet haben, hab ich einen etwas
kleineren tisch fuer
samstag 20.12.03 ab 19 uhr im enchilada bestellt.

bis dann
leibi

-----------------------------------------------------------------------------



Spontanstati Bochum (Miril, 20. Dez 2003, 12:36:17):
Hi!
Wir haben gerade spontan beschlossen uns heute Abend in den Vier Winden
zu treffen.
So ca. um 20.00 Uhr. Wer also Bock hat, moege kommen. 

Miril

-----------------------------------------------------------------------------



Weihnachtsmarkt Dortmund, 23.12.2003, 17:00 Uhr, Pylon (Thufhir, 21. Dez 2003, 11:24:21):
Ein frohes Muhu,

wie jedes Jahr sind Gaeste aus Wien in Dortmund und wir treffen uns am 23.12.
um 17:00 am Pylonen (Haltestelle Rheinoldikirche), um uns dann mit Gluehweinz
und Amaretto auf den bevorstehenden Heiligen Abend vorzubereiten. Saget
bescheid, wenn ihr Euch dem anschliessen wollet, denn dann koennen wir auf
unserer Wandererschaft Euer dazutreffen beruecksichtigen. Falls danach noch
Lust am Weiterzechen besteht (die Schausteller begehren wohl fruehen
Feierabend), kann man sich auch spontan noch in eine geschlossene Schaenke
begeben.

szzt

-----------------------------------------------------------------------------



Berlin Stati (Guard,  1. Jan 2004, 16:39:44):
trotz frisch gefeiertem Jahreswechsel werden die Berliner nicht muede, weiter
zu machen und treffen sich wie ueblich am 1. Freitag des Monats, also morgen!!
um 20:00 im Aufsturz.
Also gut ausgeruht und morgen dabei sein :-=

Gruss
Guard (Statiausrufvertretung)

-----------------------------------------------------------------------------



Traditionelles Muensteraner 'Angrillen' (Catweazle,  1. Jan 2004, 23:10:29):

Moin.

Da wir ja nu endlich ein neues Jahr, koennen wir auch wieder prima das erste
Grillen des Jahres starten.

Tradionell gibts das bei mir, nicht ganz am ersten Wochenende des Jahres, aber
immerhin am zweiten, genauestens also am 10. Januar (sagen wir ab 20:00 Uhr). 

Ergo, findet euch zu Hauf bei mir ein. Wer nicht weiss wos ist, ich reagier
auf Zuruf, Mail oder was euch sonst noch so einfaellt, und verbreite gernst
weitere Details, wie ich zu finden bin. 

Ich bin aber nicht Kroesus und ausserdem schleppunwillig. Grillgut und
Getraenke sind selbst zu stellen. Aber ich bin sicher, das kriegt ihr hin.
Notreserven hab ich bestimmt. 

Yours truly,
     Catweazle

-----------------------------------------------------------------------------



Re: Traditionelles Muensteraner 'Angrillen' (Areelanir,  8. Jan 2004, 17:22:10):
~#! rn=Catweazle rt=1072995029 rg=treffen.bekanntmachungen
~#! tid=1072995029
+1


-----------------------------------------------------------------------------



Re: Re: Traditionelles Muensteraner 'Angrillen' (Foobar,  8. Jan 2004, 17:26:20):
~#! rn=Areelanir rt=1073578930 rg=treffen.bekanntmachungen
~#! tid=1072995029
Ok, dann offiziell: +1

-----------------------------------------------------------------------------



Stati in Osnabrueck (Mupfel, 12. Jan 2004, 20:01:07):
Hallo,

es ist mal wieder Statizeit in Osnabrueck.
Un zwar am Freitag, den 16.1.2004, 20 Uhr in "Joe's Saloon", Vitihof 22.
Special Guests: Jenandra, Marita, Lug.

Wer kommen moechte, moege sich per Mail bei mir oder Akasha melden, damit wir
reservieren koennen.

-mupfel-

-----------------------------------------------------------------------------



Treffdi Berlin (Liara, 25. Jan 2004, 11:34:44):
Ich bin nochmal in Berlin und wuerde mich freuen, wenn wir statt des normalen
Statis mal ein Treffen in einer anderen Lokalitaet veranstalten koennten. :)

Wann?        Freitag, 30. Januar 2004

Wo?          Graffiti
             Kurfuerstendamm 69
             10707 Berlin
             (suedwestliches Ende Ku'damm am Adenauerplatz)

Unter www.restaurant-graffiti.de gibt es naehere Informationen und einen
Lageplan.
Die Speisen sind superlecker, nicht teuer und es gibt eine Cocktail-Happy-Hour
bis 23 Uhr. Da der Laden von der Eisdiele bis zur Bar alles in sich vereint,
sind die Cocktails auch in entsprechend guter! Qualitaet. Es lohnt sich, mal
auf der Seite die Speisekarte anzusehen.

Liebe Gruesse,
Liara

P. S.: Waere lieb, wenn ihr mir kurz eine Mail schreibt oder so Bescheid sagt,
wenn Interesse besteht! Bitte lasst euch von der etwas dezentraleren Lage
nicht abschrecken, das Dings ist wirklich einen Besuch wert! 

-----------------------------------------------------------------------------



Re: Treffdi Berlin (Liara, 27. Jan 2004, 13:30:27):
~#! rn=Liara rt=1075026884 rg=treffen.bekanntmachungen
~#! tid=1075026884
Habe total vergessen, dass die Sache so gegen 20 Uhr startet. :>

-----------------------------------------------------------------------------



SUPERSONDERSTATI (Boing,  3. Feb 2004, 18:19:32):
~#! on=Muadib ot=1075828579 og=treffen
Hi,

am kommenden Samstag, das ist der 7. Februar 2004, findet in Karlsruhe ein
Sonderstati statt.
Er besteht aus 2 Teilen:
1. Sushiessen im Sushirestaurant am Filmpalast beim ZKM (wer kein sushi mag,
da gibt es auch massig anderes leckeres im angebot) ab 20.00h
2. Sobald wir satt sind wechseln wir in den Kleinen Meierhof und beenden den
Samstag und beginnen den Sonntag bei ein paar Bieren oder anderen Getraenken 

Bitte gebt Feedback wer da mit will damit ich Tische reservieren kann,
zumindest fuer das Sushi.

Es gibt uebrigens entgegen irgendwelchen Geruechten keinen besonders wichtigen
Anlass den Samstag explizit in den Sonntag ueberzuleiten.


-----------------------------------------------------------------------------



Stati Hamburg (Bielefeld,  9. Feb 2004, 14:33:56):
Moin!

In aller Kuerze: Freitag, 20. Februar, 19:30 Uhr
in der Backatelle, Fuhlsbuettler Str. 136 (Naehe U/S Barmbek).
Ein Tisch ist auf meinen MUD-Namen reserviert...

-Bielefeld

-----------------------------------------------------------------------------



spontan stati in s (Leibi,  9. Feb 2004, 19:06:30):
huhu zusammen,

da besuch in der stadt ist, findet morgen ganz spontan ab 18 uhr im enchilda
ein spontan stati statt.
eilt herbei und trinkt und esst mit uns :)

leibi - freut sich schon

-----------------------------------------------------------------------------



Spontanstammtisch in Halle (Gitarre, 10. Feb 2004, 16:09:56):

Hallo zusammen,

ganz spontan findet heute Abend ab 19:30 Uhr ein Stammtisch in Halle statt.
Fuer Kurzentschlossene: ruft Cassandra an (die Nummer ist ja von der letzten
Halle-Party bekannt). Zu viert sind wir schon (Caren, Cassandra, Sou und ich).

Gitarre - heute sprachlich inkontinent

-----------------------------------------------------------------------------



Stati in Bochum (Miril, 11. Feb 2004, 23:22:42):
Hi. Wir machen am Freitag, 13.2.2004 nen Stati im Clochard (Naehe Unicenter)
Auswaertige Gaeste sind wie immer erwuenscht. Wenn jemand den Weg nicht
kennt, moege er mich fragen, die Adresse weiss ich spontan nicht. Wir 
treffen uns so ab 20 Uhr.

Miril

-----------------------------------------------------------------------------



Sonderstati - Berlin (Pitfall, 15. Feb 2004, 09:31:00):
Moin,

am 20.02.2004 ist ab ca 20 Uhr im Aufsturz
mal wieder ein Sonderstati.

erscheint zahlreich :)

Pit*

-----------------------------------------------------------------------------



Re: Sonderstati - Berlin (Gloinson, 15. Feb 2004, 15:26:45):
~#! rn=Pitfall rt=1076833860 rg=treffen.bekanntmachungen
~#! tid=1076833860
Fortsetzung dieses StaTi am darauffolgenden Sonntag in Oranienburg, im
TURM-Erlebnisbad/-center ;) Nur so als Erinnerung.


-----------------------------------------------------------------------------



Sondertreffen in Hamburg (Grimmborn, 18. Feb 2004, 20:49:56):
Am Sonntag, 29.2., veranstalte ich ein Sondertreffen im Hamburger Osten. Und
wo wir dann schon so gemuetlich versammelt sind, koennen wir auch nebenbei
gleich den Umzugs-LKW entladen. Details wie Ort und Uhrzeit sind gerne bei mir
zu erfragen. 

Grimmborn der Atheist

-----------------------------------------------------------------------------



Stammtisch in Karlsruhe (Boing, 19. Feb 2004, 10:40:05):
Ich moechte mal wieder darauf hinweisen, dass nach wie vor jeden Donnerstag
um 20 Uhr im Kleinen Meierhof in Karlsruhe Stammtisch ist. Also nix wie
hin!
  Boing

-----------------------------------------------------------------------------



Treffen Bochum, 12.03.2004 ab 20:00 Uhr (Thufhir,  4. Mar 2004, 16:35:10):
Huhu Mitmudder,

hiermit gebe ich bekannt, dass wir wegen Ehrenbesuch ein Treffen veranstalten
wollen und zwar privat bei uns. Wenn Ihr Euch rechtzeitig anmeldet wird gegen
einen kleinen Unkostenobulus ausreichend fuer Futtter und Getraenke gesorgt
sein. Elfensichere Wegbeschreibungen gibts auf Anfrage bei mir.

s'Zz T

-----------------------------------------------------------------------------



Sonderstati Berlin (Maharet,  6. Mar 2004, 19:02:55):
Also gut, da Pitfall ja mal wieder andernorts weilt, uebernehm ich das hier
mal ganz frech.
Da Catweazle mit uns saufen will, rufe ich hiermit einen Sonderstati fuer
kommenden Montag aus.  Wie immer im Aufsturz, wie immer 20:00 Uhr. Mal sehen,
vielleicht lass ich das Training sausen, dann bin ich puentlich da, wenn
nicht, haltet bitte einen Stuhl fuer mich frei.

Maha, Spion und Giftmischer aD

-----------------------------------------------------------------------------



Frankfurt/Main, Karfreitag (9.4.) (Ronda, 11. Mar 2004, 23:45:24):
Es war ja bereits vorsichtig angedeutet, dass am 9.4. (Karfreitag) ein
Stammtisch in Frankfurt/Main stattfindet.

Nun, es bleibt dabei :-)

Genaue Infos zum Ort liefere ich noch nach, vermutlich wird es wieder die
Kneipe in Frankfurt/Hoechst, bei der es die Chicken Wings gibt. Bei Bedarf
kann ich auch probieren, ob wir da den All You Can Eat Tarif bekommen - bitte
sagt mir daher Bescheid, wenn Ihr kommen wollt und ob Ihr Wings wollt...

Ronda *bibbert bei dem Gedanken, dass Zephyr das lesen koennte...*

-----------------------------------------------------------------------------



artikel Stati in Koeln (Elberet, 12. Mar 2004, 17:25:14):
Am Freitag, dem 26. Maerz wird in Koeln ein Stati stattfinden. Wo genau.
ist noch ungeklaert Kommet zu Hauf, Anmeldungen an mich waeren nett.
Naeheres wird noch hier bekanntgegeben werden.

Elbi

-----------------------------------------------------------------------------



Re: artikel Stati in Koeln (Elberet, 14. Mar 2004, 22:23:47):
~#! rn=Elberet rt=1079108714 rg=treffen.bekanntmachungen
~#! tid=1079108714
der Stati wird erst mal auf unbestimmte Zeit nach hinten verschoben

Elberet

-----------------------------------------------------------------------------



Stammtisch Halle (Mieze, 24. Mar 2004, 15:01:05):
Liebe Mudgemeinde,

am Samstag (27.3.) gibts ab 19 Uhr nen Stammtisch in Halle im Sargdeckel
(Marthastrasse 23 in Halle). Uebernachtungsmoeglichkeiten sind ausreichend da
(bei Cassandra oder mir). Kommt zuhauf!

Mieze - Halle-Orga-Team

-----------------------------------------------------------------------------



Sonderstati Berlin (Pitfall, 24. Mar 2004, 19:02:40):
Aloa,

auf Wunsch eines einzelnen Gloinsons
wird am Freitag, dem 26.3. ab 20 Uhr
im Aufsturz ein Sonderstati stattfinden.

Pit*

-----------------------------------------------------------------------------



Re: Stammtisch Halle (Mieze, 27. Mar 2004, 17:02:59):
~#! rn=Mieze rt=1080136865 rg=treffen.bekanntmachungen
~#! tid=1080136865

cancelled by customer.


-----------------------------------------------------------------------------



Re: Frankfurt/Main, Karfreitag (9.4.) (Ronda,  6. Apr 2004, 11:23:17):
~#! rn=Ronda rt=1079045124 rg=treffen.bekanntmachungen
~#! tid=1079045124
Hallo,
nun ists konkret, am 9.4. steigt ein Sonder-Stammtisch in Frankfurt ;-)

Los gehts um 19 Uhr, ich hab gestern leider keine Chicken Wings all you can
eat heraushandeln koennen, aber wir bekommen pro Person zehn Wings statt fuer
acht nur fuer fuenf Euro - das reicht fuer normale Esser durchaus aus. Aber es
gibt auch noch andere leckere Sachen zu futtern. Bis um acht gibts auch - fuer
Frankfurter Preise - guenstigere Cocktails.

Bitte sagt mir Bescheid, wenn Ihr kommen wollt, damit wir ausreichend viele
Tische "kapern" koennen.

Wie kommt man zur Sports Bar? A66 bis Frankfurt-Hoechst, dann Richtung
Frankfurt-Hoechst (sprich: NICHT zum MTZ), danach geradeaus bis es nicht
weiter gradeausgeht, ohne das Auto zu schrotten. Da dann rechts ab, an der
Post links abbiegen, dann einfach geradeaus bis zum Parkplatz. Da sieht man
dann sofort die Sportsbar. (Die Strasse heisst "Hoechster Markt".)

In der Sportsbar ist nur maessiger Empfang mit dem Handy, notfalls koennt Ihr
aber (069) 316131 anrufen, die Chefin der Sports Bar sollte Euch erklaeren
koennen, wie Ihr hinkommt ;-)

Tschuess,

Ronda

-----------------------------------------------------------------------------



Stammtisch in Kaiserslautern(24.04.) (Dorian, 23. Apr 2004, 20:44:57):
Hoeret, hoeret. Wegen dem kurzfristigen Besuch einer
einzelnen Zwergenzauberine findet am Samstag, dem 24.04.,
im "St.Martin" in Kaiserslautern ein Sonderstati statt.
Um sicherzugehen, dass wir den Laden nicht total ueberrennen
bitte ich lusthabende Stati-sten, mir noch vorher Bescheid zu geben.
Einfach Mail an mich, ich hoffe auf zahlreiches Erscheinen ;)

Bierschuettelmeister Thantalas, i.A. Dorian

-----------------------------------------------------------------------------



Stati Berlin? (Mieze, 24. Apr 2004, 17:24:44):
Hallo zusammen,

am 1.5. wollte ich nach Berlin. Haette jemand Zeit und Lust auf einen
Stammtisch?

Mieze - reisend

-----------------------------------------------------------------------------



Stati in Koeln am 8. Mai (Elberet, 25. Apr 2004, 21:43:17):
Lang, lang ist der letzte Koelner Stati her. Daher wird es mal wieder dringend
Zeit.

       Stati am 8. Mai in Koeln

Nachmittags treffen sich bei Interesse und gutem Wetter alle Eisfans
unter den Muddern in der schoenen Altstadt Koelns, abends geht es in
einer Kneipe weiter.

Die Lokalitaeten muessen noch festgelegt werden, daher bitte bei Interesse
rechtzeitig melden.

Dazu mailt doch einfach an Elberet oder Salesha.

In der Hoffnung auf Rege Beteiligung

Elbi

-----------------------------------------------------------------------------



Stati in Berlin (Pitfall, 27. Apr 2004, 22:40:10):
Aloa,

am 01.05.2004 findet ab ca 20 Uhr der
Berliner Stammtisch im "Aufsturz" statt.

Pit*

-----------------------------------------------------------------------------



Stati BO (Miril, 27. Apr 2004, 22:52:42):
Hi!

Am Freitag, den 30.4. wollen wir uns mal wieder in den Vier Winden treffen.
So ab 20 Uhr, wuerde ich sagen. Kommet zuhauf.

Miril

-----------------------------------------------------------------------------



Stati in Koeln (Elberet,  6. Mai 2004, 20:57:43):
So jetzt endlich die Infos zum Koelner Stammtisch. Ich hoffe, Ihr wartet
schon sehnsuechtig darauf.

Wann:  Samstag in 2 Tagen (8. Mai) ab 19 Uhr
Wo  :  das Gonzales in Koeln (ach ne), am Rudolfplatz direkt am Ring,
       Aachener Strasse 52, dort ist ein Tisch reserviert

Wer Lust hat, kann schon um 16:45 Uhr zum Koelner Hauptbahnhof kommen
(Ausgang Domplatte) zwecks Besuchs einer Eisdiele. Dort entscheiden wir
dann, wo wir hingehen, also wer Eis moechte, sollte puenktlich sein Es .
mag Sinn machen, wenn ihr mich nach meiner Handynummer fragt, damit wir.
uns trotzdem finden, falls Ihr zu spaet kommt.

Wer mit dem Zug kommt, fragt am besten Passanten (oder www.map24.de)
wie er zum Rudoplfplatz kommt, wenn er zu Fuss gehen will, mit der Bahn
kann man die Lienen 16,17,18 zum Neumarkt und dann die 1 oder 7 zum
Rudolfplatz nehmen.

Wenn Ihr mit dem Auto zB von Norden ueber die A57 kommt, dann fahrt
die bis zum Ende durch, dann auf die L100 (innere Kanalstrasse)
Richtung Ehrenfeld bis Ihr auf die B55 kommt. Da biegt Ihr links in die
Aachener Strasse ab und fahrt bis zum Rudolfplatz, nicht zu verfehlen
(http://www.misch1.de/bilder/koeln/koeln_hahnentor_rudolfplatz.php).
Dort fahrt zB in das Parkhaus Rudolfplatz.

Ich bin kein Autofahrer also schaut lieber vorher nochmal auf einem
Karte nach :) Von Sueden her weiss ich nicht wie es geht.

Also kommet zu hauf und wisset, es gibt Cocktails ;)

Elbi und Sal

-----------------------------------------------------------------------------



Re: Stati in Koeln (Zarniya,  7. Mai 2004, 08:39:29):
~#! rn=Elberet rt=1083869863 rg=treffen.bekanntmachungen
~#! tid=1083869863
AAAAAAAAAAAAlso.... von der Inneren nach LINKS abbiegen auf die Aachener???
Grandioser Witz!!!
Von Westen oder Sueden: Kreuz Koeln west, dann Aachener Strasse immer
gradeaus. 

Von Osten oder Sueden: Kreuz Koeln Ost, dann Richtung Innenstadt immer
gradeaus (ueber Zoobruecke, am Puff vorbei, dann am Colonius vorbei und dann
bei der Kreuzung Inneren/Aachener wieder herzhaft uebers Linksabbiegen in
Koeln lachen.

Eisessen kann man in Koeln NUR im Cafe Forum... zwischen Clodwigplatz und
Ubierring. Da kann man nach 5-6 Portionen sogar satt werden, wenn auch nur mit
Muehe, nich, Grimmborn? :))))

Achja.. fuer alle, die von Norden kommen. An dem Samstag ist Lokalderby
zwischen LEV und Koelle... also es wird definitiv voll auf den Strassen, egal,
wie das Spiel ausgeht!

Nochwas... die Aachenerstrasse ist Naehe Rudolfplatz eine Einbahnstrasse, die
nur Stadtauswaerts fuehrt. Wer Stadteinwaerts faehrt, der findet die gar
nicht, denn ab der oben genannten lachhaften Kreuzung (uebrigens mit insgesamt
4 Blitzanlagen) faehrt man stadteinwaerts ueber die Richard Wagner Strasse...
auch Einbahnstrasse, aber eben in Gegenrichtung und ein kompletter
Haeuserblock dazwischen. Man muss dann ueber den Rudolfplatz hinaus fahren,
irgendwann ne 180 Grad Wende machen und dann wieder raus aus der Innersten
Stadt. Achja.. Parken in der Gegend Samstags abends? Vergesst es. Fahrt direkt
ins Parkhaus oder nutzt ne Strassenbahn.

Aehm ja... sonst faellt mir erstmal nix ein... ausser, dass ich es witzig
finde, dass in Koeln mal wieder n Stammtisch stattfindet, wo es doch nur einen
wahrlich wirklichen Stammtisch in Koeln gab. Und das mit den Wegbeschreibungen
ueben wir noch, was? :)

Marc

-----------------------------------------------------------------------------



Spontan-Stammtisch in Hamburg am Samstag, den 15.05.2004 (Perdita, 12. Mai 2004, 21:09:56):
Hallo Leute!
Wir haben gerade beschlossen, am Samstag spontan einen Stati in Hamburg zu
veranstalten.
Geplant ist, dass wir uns wie schon oft in der Backatelle in Barmbek
(Fuhlsbuettler Strasse 136) gegen 19.30 Uhr treffen.
Ich werde die Info in den naechten Tagen noch einmal bestaetigen oder
korrigieren, aber ihr koennt euch schonmal darauf einstellen.
Perdita

-----------------------------------------------------------------------------



Re: Spontan-Stammtisch in Hamburg am Samstag, den 15.05.2004 (Perdita, 13. Mai 2004, 18:52:40):
~#! rn=Perdita rt=1084388996 rg=treffen.bekanntmachungen
~#! tid=1084388996
Hiermit bestaetige ich den Stati-Ort und -Termin fuer Samstag, den 15.05.
Backatelle Barmbek, Fuhlsbuettler Str. 136, in Hamburg, 19.30 Uhr
Ahoi
Perdita

-----------------------------------------------------------------------------



Stati in Bochum, 25.6. (Medic, 26. Mai 2004, 19:11:47):
So, diesmal mit "etwas" mehr Vorlaufzeit...

Am Freitag, den 25.6., gibts mal wieder einen Stammtisch in Bochum,
und zwar wie ueblich in den "Vier Winden".
Das ganze ist in der Hofsteder Strasse 94 (U-35-Haltestelle "Feldsieper
Strasse") in 44809 Bochum.

Kommet zuhauf!

-----------------------------------------------------------------------------



Re: Stati in Bochum, 25.6. (Medic, 19. Jun 2004, 16:12:59):
~#! rn=Medic rt=1085591507 rg=treffen.bekanntmachungen
~#! tid=1085591507
Am naechsten Freitag, den 25.6. gibt es, wie bereits angekuendigt, einen Stati
in Bochum. Los geht es ab 20 Uhr in den "Vier Winden".
Wegbeschreibung:

Vom Hauptbahnhof aus fahrt ihr am besten mit der U35 Richtung "Herne, Schloss
Struenkede" oder "Riemke Markt". 
An der Haltestelle "Feldsieper Strasse" verlasst ihr die U-Bahn wieder.
Wenn Ihr aus der Haltestelle herauskommt, geht die naechste Querstrasse links.
Nach ca. 300 Metern kommt ihr zu der Gaststaette, welche sich in derHofsteder
STrasse 94 befindet.

Fuer die Autofahrer unter euch:
A40 Richtung Bochum/Essen, Ausfahrt Bochum-Zentrum (Nr. 35, das sind 3
Ausfahrten, die 2. ist Bochum-Zentrum), nach der Abfahrt rechts abbiegen, nach
ca. 400 Meter an der 1. Ampel rechts abbiegen, und nach weiteren 400 m an der
2. Ampel nach links abbiegen, nach ca. 200 m befindet sich auf der linken
Seite das gewuenschte Ziel. Parkplaetze lassen sich davor und in den
benachbarten Seitenstrassen finden.

Kommet zuhauf :-)

-----------------------------------------------------------------------------



Re: Re: Stati in Bochum, 25.6. (Medic, 19. Jun 2004, 16:22:14):
~#! rn=Medic rt=1087654379 rg=treffen.bekanntmachungen
~#! tid=1085591507
Nachtrag: Eine detailliertere Wegbeschreibung mit Kartenskizze gibt es hier:
http://www.forum4winde.de/ftopic14.php

-----------------------------------------------------------------------------



Stati Berlin (Pitfall,  4. Aug 2004, 03:13:10):
Halloele,

Am Freitag, dem 06.08.2004 ist mal wieder
Stati im Aufsturz.


Kommet zuhauf.

Pit*

-----------------------------------------------------------------------------



Artikel (Pitfall,  4. Aug 2004, 10:07:40):
Der Berliner Stati faellt zugunsten der Party
aus. Es wuerden wohl eh zu wenig Leute dasein.

Pit*

-----------------------------------------------------------------------------



Re: Artikel (Montanus,  4. Aug 2004, 11:49:10):
~#! rn=Pitfall rt=1091606860 rg=treffen.bekanntmachungen
~#! tid=1091606860
Zu wenig Leute fuer einen Stammtisch gibt es nicht. Die gemuetlichsten
Stammtische haben immer so 3-4 Leute, da legen wir in Bremen und Hamburg auch
wert drauf. Warum sich freiwillig den Mob antun?

-----------------------------------------------------------------------------



Re: Re: Artikel (Zook,  4. Aug 2004, 12:36:00):
~#! rn=Montanus rt=1091612950 rg=treffen.bekanntmachungen
~#! tid=1091606860
Ich kann bestaetigen, dass die 2-Mann-Stammtische in Marburg auch jedesmal
ein Erfolg sind. 

Zook.

-----------------------------------------------------------------------------



Re^3: Artikel (Nibel,  5. Aug 2004, 00:02:11):
~#! rn=Zook rt=1091615760 rg=treffen.bekanntmachungen
~#! tid=1091606860
Die 1-Nibel Stammtische mit vielen Gaesten in Rueti fand ich bisher immer
noch die besten. 
  - Nibel
-----------------------------------------------------------------------------



Stammtisch Karlsruhe (Boing,  9. Aug 2004, 23:31:28):
Hi,
da der Kleine Meierhof die naechsten 4 Wochen geschlossen hat, gehen 
wir mal auf Wanderung. Erste Station am 12. August ist der Drache.
Wegbeschreibung gibts bei Croft, der ist dort Stammgast. :)
Start wie immer 20 Uhr.
  Boing

-----------------------------------------------------------------------------



Re: Stammtisch Karlsruhe (Croft, 10. Aug 2004, 00:33:28):
~#! rn=Boing rt=1092087088 rg=treffen.bekanntmachungen
~#! tid=1092087088
www.zumdrachen.de ;-)

Croft

-----------------------------------------------------------------------------



DO-Stati (Morgoth, 12. Aug 2004, 16:21:12):
So Leute, 
ich hab mal meine Mails durchforscht und bin zu dem Schluss gekommen, dass der
28.8. ein idealer Termin ist. Achtung! Dies ist ein Samstag, nicht wie ueblich
ein Freitag.
Bitte schreibt mir so schnell wie moeglich ob ihr zum Stati kommt, nen
Schlafplatz braucht etc. 
Der Ort steht noch nicht fest, ich versuch aber mal das Ameri"ZOMBIES AUS
EIMERN!"ca zu organisieren :)

M*

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 19.8.2004 (Boing, 16. Aug 2004, 13:14:32):
Hi,
auf unserer Wanderung geht es diesmal ins La Cage (http://www.lacage.info),
ab 20 Uhr wie immer.
Reservierung werde ich noch vornehmen.
  Boing

-----------------------------------------------------------------------------



Re: DO-Stati (Morgoth, 19. Aug 2004, 18:36:35):
~#! rn=Morgoth rt=1092320472 rg=treffen.bekanntmachungen
~#! tid=1092320472

Also, bisher hab ich zwei Mails (zusagen) bekommen. Falls das bis morgen Abend
nicht wesentlich mehr geworden sind, gibts nix mit Stammtisch. Fuer 5 Leute
mach ich mir den Aufwand nicht. Da koennen wir lieber wieder bei mir feiern ;)

M*

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 26.8.2004 (Boing, 20. Aug 2004, 11:53:59):
Der naechste Stammtisch ist im Green Corner in Karlsruhe-Gruenwettersbach,
Wegbeschreibungen gibt es auf Anfrage bei mir. Start wie immer 20 Uhr.
  Boing

-----------------------------------------------------------------------------



Re: Re: DO-Stati (Morgoth, 26. Aug 2004, 21:29:38):
~#! rn=Morgoth rt=1092933395 rg=treffen.bekanntmachungen
~#! tid=1092320472

So, nochmal ein update. Es haben sich zwar noch welche angemeldet aber es sind
auch noch welche abgesprungen. Also vergessen wir das mit dem Stati mal.
Vielleicht wirds ja naechsten Monat nochmal was...

M*

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 2.9.2004 (Croft, 31. Aug 2004, 13:05:42):
Nachdem der neue Wirt den Kleinen Meierhof schon am 1.9 wiedereroeffnet,
sparen wir uns den 4. Auswaertstermin und schauen mal was aus unserer
Stammkneipe geworden ist.  Beginn ist wie immer 20:00.

Croft

-----------------------------------------------------------------------------



Berlin (Pitfall, 31. Aug 2004, 23:05:19):
Aloa,

am 03.09.2004 ist mal wieder Stati in Berlin.
Das ganze findet wie immer ab ca 20 Uhr im
"Aufsturz" statt.

Kommet zahlreich!

-----------------------------------------------------------------------------



Re: Berlin (Mieze,  1. Sep 2004, 13:52:26):
~#! rn=Pitfall rt=1093986319 rg=treffen.bekanntmachungen
~#! tid=1093986319
Schade, das ist einen Tag zu frueh. Am 4. kommt mein Klavier, da muss ich bis
Mittag in Essen sein.

Mieze - hat Termine

-----------------------------------------------------------------------------



Re: Stammtisch Karlsruhe 2.9.2004 (Croft,  1. Sep 2004, 16:49:21):
~#! rn=Croft rt=1093950342 rg=treffen.bekanntmachungen
~#! tid=1093950342
Da der Wirt diese Woche die Kueche noch nicht betreiben darf (fehlt wohl
noch die Lizenz zum Kochen), gehts jetzt doch ins Litfass (naehe Marktplatz,
hinter der kleinen Kirche).  Beginn ist wie immer 20:00.

Croft

-----------------------------------------------------------------------------



Re: Berlin (Pitfall,  2. Sep 2004, 18:12:38):
~#! rn=Pitfall rt=1093986319 rg=treffen.bekanntmachungen
~#! tid=1093986319
Auf vielfachen Wunsch hin wird der Stati aus dem Aufsturz verlegt.
Die neue Location ist:

Exes-Pool
Style: Bar, Caf, Restaurant
Friedrichshain
Wuehlischstr. 30 (unweit Warschauer Strasse/Frankfurter Tor)
10245


Pit*

-----------------------------------------------------------------------------



Grillen (Miril,  4. Sep 2004, 01:33:03):
Wer heute abend (also Samstag, 4.9.) Zeit und Lust hat, kann gerne zum
Grillen zu mir kommen. Er/Sie moege nur bitte Bescheid sagen.

Anlass: Ein Feigling treibt sich in der Gegend rum :)

Miril

-----------------------------------------------------------------------------



STammtisch in Xlendi (Mesirii,  4. Sep 2004, 12:50:57):
Wir haben fuer morgen Abend (Sonntag, 5.9.2004; 20:00( einen Super-Sonder
Stammtisch im schoenen Xlendi auf Gox^hzo der Schwesterinsel von Malta
angesetzt. Treffen in Moby Dick am Stand von Xlendi, da gibts Pizza und andere
e leckere Dinge. Spaeter am Abend koennen wir in eine le^ der lokalen Bars
weiter
ziehen. 
Bs^hisher mit dabei: Zephy,^hr, Tryfan, Muadib, Mesirii
Wir hoffen auf zaehlreiches Erscheinen, das Entfernungsargument zaehlt wie
immer nicht.
Wenn ihr nicht kommt r` tin trinken wir das ganye^h^hze Bier alleine.

Mesi, zum Stammtischausrufer ernannt.
P.S. Sorry fuer die Fehler aber im Applet funktiert weder Backspace, Del,
Ctrl-h

-----------------------------------------------------------------------------



"Stammtisch" in Nuernberg 11.09 (Hight,  9. Sep 2004, 20:43:02):
Aus gegebenem Anlass (es sind mehr als 3 Mudder im einzugsgebiet) werden sich
selbige am Samstag 11.09 in Nuernberg zusammentun.

Zeit ca. 20:00
Ort   Treffen warscheinlich am Bahnhof zwecks aufbruch zu den Getraenken

Als Ziele schlage ich folgendes vor

Draussen - Biergarten auf der Wiesen
Gutes Bier - Landbierparadies
Cocktails und lecker Mexicanfood - Our-Place in Fuerth (wie es da am
Wochenende zugeht weiss ich allerdings nicht)

mehr Vorschlaege fallen mir grade nicht ein da ich satt und zufrieden bin ,o)

wer also lust hat zu kommen ist herzlich eingeladen 


Chris aka Hight

-----------------------------------------------------------------------------



Kaffeerunde in MS am 8. Sep. 2004 (Zook, 10. Sep 2004, 20:04:59):
Die Kaffee-Runde in Muenster im Floyd-Caffee am Dom war ausgesprochen gut
besucht und sehr huebsch.

Zook.

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 16.9.2004 (Boing, 14. Sep 2004, 10:05:20):
Nachdem der neue Wirt im KM den Eignungstest nicht bestanden hat, gehen
wir erstmal auf Wanderschaft. Erste Station ist das Green Corner in
Gruenwettersbach. Wegbeschreibung auf Anfrage, los gehts wie immer um
20 Uhr.
  Boing

-----------------------------------------------------------------------------



Abschiedsstati Halle (Cassandra, 14. Sep 2004, 14:00:14):
Da uns eine langjaehrige Mitbewohnerin unserer schoenen Stadt Halle nun
endgueltig verlassen wird, rufe ich hierzu zu einem Abschiedsessen aus.

Zeit: Donnerstag 16.9 (uebermorgen)
      Ca. 20 Uhr
Ort:  Meine Wohnung, wegbeschreibung bei mir

Da wir kochen wollen und dementsprechend auch planen muessen, bitte vorher
anmelden. (Bei mir oder bei Mieze)

Cassy

-----------------------------------------------------------------------------



Moma-Stammtisch Berlin (Gloinson, 16. Sep 2004, 23:14:34):
Zur Verabschiedung der MoMa und um diese vielleicht noch zu besuchen und
ueberhaupt setze ich jetzt kraft einer weiteren Schnapsidee des inoffiziellen
Mittwochs-Stammtisches einen:

 MOMA-SonderStaTi
        im
 Exes Pool in der Wuehlischstrasse 30 (siehe letztes Mal)
         am
 Freitag, den Dingsda, 17. also morgen ab 20 Uhr

an. Nach der zweiten Happy Hour (1-2 Uhr) werden sich einige von uns gen MoMa
absetzen, da dieses von heute bis Sonntag run um die Uhr aufhat und die
Chancen fuer Nacktschwaermer besser sein duerften. Genau.


-----------------------------------------------------------------------------



Stammtisch Karlsruhe 23.9.2004 (Croft, 21. Sep 2004, 16:35:38):
Die zweite Station der Wanderschaft wird im Litfass (naehe
Marktplatz, hinter der kleinen Kirche) sein.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum (Arathorn, 21. Sep 2004, 20:51:42):
Hallo zusammen,

ich habe endlich jemanden erreicht, der mir in unserer Stati-Kneipe einen
Tisch reservieren konnte. ;-)

Es findet wieder mal ein Stammtisch in Bochum statt, und zwar am

      Freitag, dem 24. September 2004

      Ort: Zu den Vier Winden,
           Hofsteder Strasse / Ecke Feldsieper Strasse
           Bochum

      Zeit: wie immer ab 20:00 Uhr

Kommet zuhauf! 

Gruss, Arathorn.

-----------------------------------------------------------------------------



Stammtische Karlsruhe 30.9. - 21.10. (Hobo, 24. Sep 2004, 13:13:26):
Gestern im Litfass wurden mit tauben Ohren die naechsten Stammtischorte
festgelegt. Den vierten habe ich ganz frech selbst angehaengt ;) Termin ist
bekanntermassen immer Donnerstag 20 Uhr.
30.09. LaCage
07.10. Drache
14.10. Pizzahaus
21.10. Green Corner

Wegbeschreibungen und andere Infos gibt's bei beliebigen zufaellig muddenden
Karlsruhern, soweit sie nicht Hobo heissen ;)

Und am 28.10. gibt's hoffentlich im KM schon wieder einen neuen Wirt.

   Hobo

-----------------------------------------------------------------------------



Stati Nuernberg (Bambi, 26. Sep 2004, 00:56:21):
Ich wuerde am kommenden Samstag gerne einen Stati machen. Das ist der 2.
Oktober 2004. Bei Interesse bitte bei mir melden.

-----------------------------------------------------------------------------



Dresden! (Zook,  3. Okt 2004, 19:40:16):
~#! on=Grimmborn ot=1096825158 og=treffen
~#! on=Zook ot=1096823441 og=treffen.bekanntmachungen
Ich berichte gerne, dass die Stammtische beim Griechen, in der Neustadt
und in der *nuschel*-Strasse ziemlich klasse waren! 

Zook.

-----------------------------------------------------------------------------



Dortmund 12. 10. (Rochus,  6. Okt 2004, 15:33:24):
Stati im Atlantico (Dortmund, Weissenburger Str. 35)
Am 12. 10. 2004 um 20 Uhr.

Ein Specialguest wird ueber uns wachen ;-)

Dienstags kosten da ALLE Cocktails 4 Euro ;)

  Rochus

-----------------------------------------------------------------------------



Muensteraner Stammtisch am 15.10. (Catweazle,  6. Okt 2004, 15:47:24):

Moin!

Das es sowas noch gibt! Ein echter Muensteraner Mudder-Stammtisch. 

Ich kann nicht mal mit tollen Special Guests (bisher) aufwarten, ich kann nur
bekanntgeben, dass es ungewoehlicherweise mal einen gibt und alles herzlich
geladen ist (auch special guests :).

Stattfinden tut der Stammtisch am 

                          15. Oktober
in der 
                          Cavete (Kreuzstrasse 38)
in 
                          Muenster (48143)
ab
                          20:00 Uhr

Kommet zuhauf!

YTC

-----------------------------------------------------------------------------



Stammtisch in Muenchen? (Mieze,  8. Okt 2004, 19:05:53):
Hallo Mudgemeinde,

bin naechste Woche beruflich in Muenchen. Wie schauts da mit nem Stammtisch
aus? 

Mieze - mal wieder bei den Weisswuersten

-----------------------------------------------------------------------------



Stammtische Karlsruhe 28.10. - 18.11. (Croft, 21. Okt 2004, 23:20:06):
Ein Monat ist wieder verstrichen und wir haben die naechsten Lokalitaeten
ausgewuerfelt:
28.10.04 Wolfsbraeu
 4.11.04 Stoefchen
11.11.04 Drache
18.11.04 Green Corner
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Flammkuchenessen im Elsass 20.11. (Croft, 21. Okt 2004, 23:22:02):
Den Karlsruhern geluestet es mal wieder nach Flammkuchen.  Als Termin ist
soweit der 20.11. vorgesehen.  Das Lokal steht noch nicht fest, Vorschlaege
im Elsass werden noch entgegengenommen ;-)

Croft

-----------------------------------------------------------------------------



Re: Flammkuchenessen im Elsass 20.11. (Croft, 21. Okt 2004, 23:26:38):
~#! rn=Croft rt=1098393722 rg=treffen.bekanntmachungen
~#! tid=1098393722
Achso: bei Interesse Mail an mich, damit ich einen Ueberblick ueber die
Personenanzahl bekomme.

Croft

-----------------------------------------------------------------------------



Re: Stammtische Karlsruhe 28.10. - 18.11. (Hobo, 23. Okt 2004, 19:52:04):
~#! rn=Croft rt=1098393606 rg=treffen.bekanntmachungen
~#! tid=1098393606
Achja, und in fuenf Wochen ist dann evtl. schon wieder Stammtisch beim neuen
KM-Wirt *grins*

  Hobo

-----------------------------------------------------------------------------



Stammtisch Berlin 29.10 (Gloinson, 24. Okt 2004, 00:25:41):
Es ist mal wieder Zeit uns in unserer neuen StaTi-Kneipe zu versammeln und uns
gegenseitig Luegenmae^WLegenden von unseren Abenteuern zu erzaehlen. Also:

 StaTi am Freitag den 29. Oktober im eXes Pool ab 20 Uhr
 in der Wuehlischstrasse 30 - Happy Hour von 18:00 bis 22:00 Uhr

Ein altbekannter weisser Nachwuchswuestendingsda wird zu Gast sein.

Der naechste Stammtisch wird dann voraussichtlich am 26. November stattfinden.


-----------------------------------------------------------------------------



Stammtisch Fuerth 27.10. (Marcus, 26. Okt 2004, 17:44:23):
Hi,

Es wird einen kleinen Stammtisch in Fuerth geben, morgen, am 27.10.

Ort: Irish Cottage Pub, Gustavstrasse, Fuerth
Anfahrt: U1 bis Fuerth Rathaus und da Obstmarkt/Busbahnhof aussteigen und 
         in die Seitengasse huepfen.
Zeit:    derzeit vorgeschlagen: 21:15
Angemeldet: Lacri, Gwenili, Marcus

Ciao, Marcus

-----------------------------------------------------------------------------



Re: Re: Flammkuchenessen im Elsass 20.11. (Croft, 13. Nov 2004, 10:49:20):
~#! rn=Croft rt=1098393998 rg=treffen.bekanntmachungen
~#! tid=1098393722
Nachdem es etwas laenger gedauert hat, bis das Lokal feststeht, gibts
endlich die letzten Details.  Das Ziel ist die

Auberge Ecurie du Rhin
33, rue des Roses
67480 Neuhaeusel
0033(0)388864064

Momentan ist dort fuer 15-20 Leute auf 19:00 reserviert, und bis
naechsten Donnerstag sollte ich genauere Informationen ueber die
letzten unentschiedenen Leute haben, damit noch mal genauer Bescheid
gegeben werden kann.

Treffpunkt wird wieder der Uniparkplatz am Fasanengarten um 18:00
sein.  Falls jemand eine Wegbeschreibung zum Treffpunkt braucht:
bitte melden.

Croft

-----------------------------------------------------------------------------



Stati Nuernberg (Bambi, 16. Nov 2004, 17:40:19):
Hi.
Wer Lust an nem Stati am Samstag in Nuernberg hat, kann mir mal bitte Bescheid
geben. Ich bin dafuer, den dieses mal nicht in Fuerth stattfinden zu lassen.
MfG, Bambi.

-----------------------------------------------------------------------------



Stammtisch Berlin 26.11. (Gloinson, 18. Nov 2004, 21:58:39):
Selber Ort, selbe Zeit:

 StaTi am Freitag den 26. November im eXes Pool ab 20 Uhr
 in der Wuehlischstrasse 30 - Happy Hour von 18:00 bis 22:00 Uhr

Gaeste haben sich bisher nicht angekuendigt, aber es gibt ja sicherlich genug
eigene neue Schnurren von komischen an fuerchterlichen Bknors verendeten
Chaoten und anderen Albernheiten zu erzaehlen ... koemmet in Scharen!


-----------------------------------------------------------------------------



Re: Stati Nuernberg (Bambi, 19. Nov 2004, 21:54:45):
~#! rn=Bambi rt=1100623219 rg=treffen.bekanntmachungen
~#! tid=1100623219
Aufgrund aktueller Ereignisse sind mehrere Nuernberger Mudder (darunter auch
ich selbst) anderweitig gebunden. Wer dennoch einen Stati machen will, melde
sich bitte bei Ereschi.

-----------------------------------------------------------------------------



Stammtische Karlsruhe 25.11-16.12 (Croft, 22. Nov 2004, 14:28:27):
Und wieder wurden im Green Corner die naechsten Lokale ausgewuerfelt:
25.11 Drache
 2.12 Pizzahaus
 9.12 American Diner / La Cage
16.12 Green Corner
Wie ueblich ab 20:00 und Wegbeschreibungen gibts auf Anfrage.

Croft

-----------------------------------------------------------------------------



artikel Nuernberger Stati (Ereschi, 25. Nov 2004, 01:34:26):
Hallo ihrs ;)

Bambi hat mich mal kurz erwaehrt ;) Ich habe mir Zeit genommen und einen
Restaurant ausgewaehlt. 

Wer Lust und Zeit hat kann am Dienstag 30, ab 19 Uhr erscheinen ;)
Wo? 
Restaurant TEATRO (spanische und mexikanische Spezialitaeten)
Nahe Woehrder See
Thumenberger Weg 18

Mit dem VGN: Tram 8 (Haltestelle Thumenberger Weg) 
          oder Bus 45 (ueber U2 Schoppershog, Haltestelle: Weisser Weg oder
Goldhammer)
Genaue Wegbeschreibung erfolgt ueber www.vgn.de

Ich wuerd mich auf Zahlreiches Erscheinen freuen, schreib mir ne kurze Mudmail
falls ihr kommen wollt ;)

Bis evtl Dienstag ;)
Ereschi

-----------------------------------------------------------------------------



Sonderstati mit Bauchtanz (Mesirii, 12. Dez 2004, 12:51:31):
Liebe Mitmudder,

natuerlich wollen wir Euch die angenehmen Seiten eines Aufenthalts an der
Kueste des Roten
Meers im Hotel Lotus Bay, Safaga, Aegypten nicht vorenthalten und laden Euch
heute Abend
zu einem Sonder-Spezial-Stammtisch in die hiesige Shisha-Bar ein.

Er soll so gegen 20:30 starten und kann unter klarem Sternenhimmel bis zum
Sonnenaufgang 
gegen 6:00 andauern. Fuer Unterbringung im Hotel ist gesorgt. Wir sichern
schon einmal die
besten Plaetze mit direkten Blick auf das Amphitheater.

Flugbuchungen koennen kurzfristig mit dem Zielflughafen Hurghada (HRG)
vorgenommen werden.

Wir haben keine Muehen gescheut und extra eine Bauchtanz-Gruppe zur
angemessenen 
Unterhaltung angeheuert. Daneben wird es Stella-Bier, tuerkischen Kaffee,
schwarzen Tee 
mit Room, schwarzen Tee mit Pfefferminze (macht garantiert albern) sowie
ungeniessbaren 
Weiss-, sowie gerade so trinkbaren Rotwein geben. 
Alternativ auch leckeren Orangen-, Mango- oder Guavensaft.
An harten Drogen wird Wisky und Uzo angeboten.

Dem Namen der Bar ist schon zu entnehmen, dass hier in der Kifferecke auch dem
Genuss der
allgegenwaertigen Shisha-Wasserpfeifen gefroent werden kann.


i.A. Mesirii, frischgebackener Chaosehezwerg

P.S. Special Guests: die beiden trauten Rumschmuser V* und der Sheriff, 
sowie die Beste aller Ehefrauen.

Kommet zuhauf (c) Foobar

-----------------------------------------------------------------------------



Stati Nuernberg (Bambi, 13. Dez 2004, 21:08:16):
Donnerstag, 16.12.2004, ab etwa 19 Uhr im V8.
Siehe auch: http://www.v8-bistro.com/

-----------------------------------------------------------------------------



Weihnachtsstati Bochum? (Nedime, 14. Dez 2004, 14:36:10):
Huhu!

Ich faends ganz nett, wenn wir unsere seit 2 Jahren ins Leben gerufene
Tradition mal fortsetzen wuerden und nen kleinen Stati aufm Weihnachtsmarkt
machen wuerden (zum Aufwaermen kann man ja anschliessend noch die "Vier Winde"
aufsuchen.

Ich wuerde Freitag Abend vorschlagen, d.h. den 17.12.2004 so gegen 19.30 Uhr.

Wer kommen will, sollte sich mal hier melden (auch Muensteraner, Paderborner
und sonstige Auswaertige sind gerne willkommen, ueber Schlafplaetze liesse 
sich durchaus reden.)

Nedime

-----------------------------------------------------------------------------



Re: Weihnachtsstati Bochum? (Nedime, 17. Dez 2004, 01:37:47):
~#! rn=Nedime rt=1103031370 rg=treffen.bekanntmachungen
~#! tid=1103031370
So, noch mal etwas praeziser:

Wir treffen uns um 19.30 Uhr am Dr. Ruhr Platz in Bochum vor dem Glascafe 
dort. 

Nedime

-----------------------------------------------------------------------------



Re: Re: Weihnachtsstati Bochum? (Nedime, 17. Dez 2004, 17:23:53):
~#! rn=Nedime rt=1103243867 rg=treffen.bekanntmachungen
~#! tid=1103031370
Huhu!

Wem das heute um halb 8 zu nass wird, der kann sich ab 21.00 Uhr in den 
Vier Winden einfinden ;). Ich hab dort einen Tisch reserviert.

Nedime

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 23.12 (Croft, 22. Dez 2004, 18:00:28):
Am 23.12 gibts den Vorweihnachtsstammtisch im Wolfbraeu am Werderplatz.
Treffen wie immer 20:00, (Speise-)Karte gibts unter
http://www.wirtshauswolfbraeu.de/

Croft

-----------------------------------------------------------------------------



Stati in Hamburg am Sonntag, 09.01.2005 (Perdita,  4. Jan 2005, 11:02:03):
(nun haett ich beinah 09.01.2004 statt 2005 geschrieben, ooops)

Moinmoin allerseits!
Wir treffen uns ausnahmsweise einmal an einem Sonntag, naemlich dem
09.01.2005.
Mit Ruecksicht auf die arbeitende Bevoelkerung beginnen wir bereits um 18 Uhr.
Ort wie schon so oft die Backatelle in Barmbek, Fuhlsbuettler Str. 136.
Erscheint zahlreich!
Perdita

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 6. Januar (Boing,  6. Jan 2005, 14:01:52):
Stammtisch ist heute im Green Corner in Gruenwettersbach. Start wie 
immer um 20 Uhr.
  Boing

-----------------------------------------------------------------------------



Fruehstuecksstammtisch im Pott (Mieze,  6. Jan 2005, 16:38:18):

Hallo zusammen,

mit ein paar Leuten hier aus der Umgebung haben wir ueberlegt, ob wir sonntags
mal einen Fruehstuecksstammtisch im Merlin (www.merlin-die-waldkneipe.de) in
Essen Kupferdreh machen. Das Fuehstueck geht dort bis 15 Uhr. Terminlich haben
wir noch nichts festgelegt. Wer hat noch Interesse? 

Mieze - will mal wieder zum Stati

-----------------------------------------------------------------------------



Stammtisch Karlsruhe 13.1 (Croft, 10. Jan 2005, 17:51:52):
Auf besonderen Wunsch gehts diese Woche wieder ins Green Corner in
Gruenwettersbach.  Beginn um die ueblichen 20:00.

Croft

-----------------------------------------------------------------------------



Re: Fruehstuecksstammtisch im Pott (Miril, 11. Jan 2005, 15:41:34):
~#! rn=Mieze rt=1105025898 rg=treffen.bekanntmachungen
~#! tid=1105025898
Aus gegebenem Anlass (diverse Leute hier in der Gegend) wuerde ich ja den
23.1.2005 vorschlagen. D.h. an dem Sonntag einen
Fruehstuecksstammtisch im Merlin (kostet 9 Euro pro Nase, Buffet).

Da ich das reservieren muesste, waere es nett, wenn ihr euch anmelden wuerdet.

Miril

-----------------------------------------------------------------------------



Dresden (Seit langem mal wieder) (Deepblue, 12. Jan 2005, 15:10:46):
Hi.

Da nicht alle auf dem externen Verteiler stehen, leite ich Vardions Mail mal
hierher weiter:

Am Freitag wird in Dresden seit langem mal wieder ein Stati stattfinden. Wir
treffen uns 20 Uhr im Feldschloesschen (Budapester Str. 32, 01069 Dresden).

Ciao

Deep*

-----------------------------------------------------------------------------



Re: Dresden (Seit langem mal wieder) (Maharet, 12. Jan 2005, 16:36:51):
~#! rn=Deepblue rt=1105539046 rg=treffen.bekanntmachungen
~#! tid=1105539046
Und da nicht alle, die auf dem Verteiler stehen, Vardion zutrauen, selbst
einen Ankuendigungsartikel zu posten und daher nicht alle Informationen bieten
koennen, vervollstaendige ich das mal, damit nicht alles so weit
auseinandergepflueckt wird:

Wir hatten angedacht, danach noch ein Rudelmudden zu veranstalten.  Also
bringt ggf euren Laptop mit, einige Rechner stehen aber auch fuer
Nichtlaptopper zur Verfuegung.

Maharet


PS Es wird wohl einige Gaeste von ausserhalb geben.  Und damit mein ich nicht
nur mich.

-----------------------------------------------------------------------------



SonderSushiStammtisch Karlsruhe 16.1 (Croft, 16. Jan 2005, 18:33:11):
Damit es auch hier angekuendigt ist: ein paar Karlsruher Mudder gehen mal
wieder beim Asiaten im Filmpalast Sushi essen.  Und zwar um 19:30.  Wer
noch so kurzfristig kommen kann, sei herzlich eingeladen.

Croft

-----------------------------------------------------------------------------



Stati N (Bambi, 18. Jan 2005, 21:19:52):
Am Donnerstag "so um 7 Uhr abends" im V8. Zur Not koennen wir das auch als
"kurzfristigen Sonderstati" deklarieren, wenn wir sonst die
Mindestanwesenheitsquote nicht erreichen. ;)

-----------------------------------------------------------------------------



Fruehstueck am 23.1. (Miril, 20. Jan 2005, 18:56:47):
Also noch mal konkreter:
Am Sonntag um 11.00 Uhr macht der Laden auf (www.merlin-die-waldkneipe.de).
Fruehstueck gibts bis 15.00 Uhr. Ich wuerde mal vorschlagen, dass wir uns 
gegen 11 dort treffen. Da groessere Horden wohl eine Tischreservierung
benoetigen, bitte ich alle, die dorthin wollen, mir eine mail zu schicken,
damit ich mal ne konkrete Zahl hab.

Und das bitte bis Freitag, wenn moeglich.

Miril

-----------------------------------------------------------------------------



Stammtisch Berlin, 11. Februar (Gloinson, 20. Jan 2005, 22:21:45):
Wird Zeit sich im neuen Jahr mal wieder zu treffen um den Abgesang auf die 
guten Vorhaben von Sylvester anzustimmen.

Selber Ort, selbe Uhrzeit, neue Lueg^WAbenteuer und hoffentlich viele Gaeste:

          11. Februar um 20 Uhr in der Wuehlischstr. 30
                               im
                            eXes Pool


-----------------------------------------------------------------------------



Stammtische Karlsruhe 20.1/27.1/3.2/10.2 (Croft, 20. Jan 2005, 22:56:06):
Eine kleine Aenderung ist bekannt zu geben:
20.1 Wolfbraeu (http://www.wirtshauswolfbraeu.de/)
27.1 Zum Drachen (http://www.zumdrachen.de/)
 3.2 La Cage (http://www.lacage.de/)
10.2 Green Corner
Beginn ist wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Spontaner Stati im ICE 642 (Maharet, 22. Jan 2005, 10:35:26):
Kommet zuhauf, jetzt, Wagen 24. Wir fahren gerade aus Hannover raus.  Mit
Ueberraschungsgast.
Es gibt Kaffee und Tee.

-----------------------------------------------------------------------------



Erster MG-Programmier-Brunch in Essen am 6.2. (Shakedbeer, 23. Jan 2005, 17:47:59):
Hi!

Nachdem wir heute das Merlin getestet haben (einige waren ja schon zuvor da)
haben wir es fuer gut befunden und dank kostenlosem WLAN-Zugang fuer ein
Programmier-Brunch ausgewaehlt. Wer immer sich ein Notebook schnappen moechte,
um seine Projekte voranzutreiben, ist herzlich eingeladen dazuzustossen und
sich nebenbei fuer 9,-- EUR den Bauch vollzuschlagen.

Zwecks Voranmeldung, bitte bis zum Mittwoch davor Mail an mich.

Bis dann!

Shaky.

-----------------------------------------------------------------------------



Re: Erster MG-Programmier-Brunch in Essen am 6.2. (Shakedbeer, 23. Jan 2005, 17:51:01):
~#! rn=Shakedbeer rt=1106498879 rg=treffen.bekanntmachungen
~#! tid=1106498879
Ach ja... Natuerlich sind auch Spieler und eventuelle "Detailsklaven" gern
gesehen. Ausserdem ist vorgesehen, dieses Event vierzehtaeglich zu
wiederholen.

Shaky.

-----------------------------------------------------------------------------



Zweites MG-Programmier-Fruehstueck am 20.2. (Shakedbeer,  6. Feb 2005, 13:41:56):
Hi!

Schon heute auf dem ersten Programmierfruehstueck beschlossen und verkuendet:
Zweites Programmierfruehstueck
20.02.2005, 11:00
Merlin die Waldkneipe, Essen
http://www.merlin-die-waldkneipe.de
WLAN: verfuegbar

Fruehstuecksbuffet: 9,-- EUR

Shaky.

-----------------------------------------------------------------------------



Re: Stammtische Karlsruhe 20.1/27.1/3.2/10.2 (Croft,  9. Feb 2005, 11:48:16):
~#! rn=Croft rt=1106258166 rg=treffen.bekanntmachungen
~#! tid=1106258166
Da Muadib und Boing in die Pampa geschickt worden sind und Hobo auf
die Zwerge aufpassen muss, wird der Stati im Green Corner auf den
17.2 verschoben.  Dafuer gehts diesen Donnerstag in den Drachen.

Croft

-----------------------------------------------------------------------------



Re: Stammtisch Berlin, 11. Februar (Gloinson,  9. Feb 2005, 11:51:46):
~#! rn=Gloinson rt=1106256105 rg=treffen.bekanntmachungen
~#! tid=1106256105
 Erinnerung: Diesen Freitag, 20 Uhr.


-----------------------------------------------------------------------------



Buxtehude (Muadib,  9. Feb 2005, 20:12:13):
Boing und ich werden morgen abend, so gegen 20:00 in Buxtehude was essen
gehen. Vermutlich im Rathauskeller. (sag ich einfach mal so).
Wenn sich noch Leuts aus der Umgebung finden, koennte man es Stati nennen.

Ich versuche morgen noch was genaueres hier reinzuposten. Sollte es nicht
klappen, aber denoch Interessenten da sein, dann ruft an 01773065153.
Bitte erst ab 18.30 anrufen. 
Und bitte, die Nummer nicht missbrauchen, ich wuerde sie gerne noch behalten.

-----------------------------------------------------------------------------



SonderStaTi Berlin 22. Februar (Gloin, 16. Feb 2005, 11:58:39):
Nachdem uns zu Ohren kam, dass sich wahrscheinlich ein katzwieseliger, 
nichtwampiger Gast in Berlin befindet haben wir uns spontan entschlossen doch 
einen Stammtisch zu seinen Ehren zur veranstalten.
Zu diesem Zwecke wurde von einem Bierhobbit nebst Dunkelzwoelfe extra ein 
neues Lokal auserkoren:


    Stammtisch am Dienstag, den 22. Februar
                  ab 20 Uhr
                     im
                  Acapuloco

    WWW:  http://www.acapulco-berlin.de/
    Ort:  bei U Bahnhof Weberwiese (U5 ab Alex)

Der Laden ist prinzipiell ein Mexikaner mit Cocktailbar, hat am Dienstag den 
ganzen Tag Happy Hour (Cocktail 3,85 Eulen).

Koemmet in Scharen. Vergesst die Faehnchen nicht!


-----------------------------------------------------------------------------



Stammtische Karlsruhe 17.2/24.2/3.3/10.3 (Croft, 17. Feb 2005, 22:23:58):
Einfallslos wie wir sind, versuchen wir die letzten 4 Kneipen nochmal
in der Reihenfolge:
17.2 Wolfbraeu  (http://www.wirtshauswolfbraeu.de/)
24.2 Zum Drachen (http://www.zumdrachen.de/)
 3.3 La Cage (http://www.lacage.de/)
10.3 Green Corner
Beginn ist wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati Nuernberg, nein Fuerth (Bambi, 17. Feb 2005, 23:44:37):
Morgen, nein heute... nein. Doch erst morgen findet vielleicht ein Stati in
Venedig, aeh, im Venedig in Fuerth statt. Aber nur vielleicht, weil vielleicht
findet auch woanders etwas anderes statt, wo wir hingehen und dann sind wir ja
nicht beim Stati und so. Und wenn wir nicht beim Stati sind, ist auch kein
Stati, nehme ich an.

-----------------------------------------------------------------------------



Stammtische Karlsruhe 3.3/10.3/17.3 (Croft, 26. Feb 2005, 09:34:41):
Nachdem mir ein kleiner Fauxpas mit dem Datum unterlaufen ist, hier
die aktualisierten Termine
 3.3 Zum Drachen (http://www.zumdrachen.de/)
10.3 La Cage (http://www.lacage.de/)
17.3 Green Corner
Beginn ist wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch Berlin 4. Maerz (Gloinson, 28. Feb 2005, 21:15:20):
Stammtischzeit, viele komische Dresdner und lange nicht anwesende andere 
Menschen haben angekuendigt einzufallen. Wer also nicht allzu allergisch auf 
nette Menschen und Cocktails reagiert, finde sich doch ein zum


    Stammtisch am Freitag, den 4. Maerz
                  ab 20 Uhr
                     im
                  Exes Pool

    Ort:  Wuehlischstrasse 30, 10245 Friedrichshain
          Zwischen S/U Warschauer Strasse und U Frankfurter Tor

Happy Hour wieder von 20-22 und 1-x Uhr.


-----------------------------------------------------------------------------



Uebernatuerlicher Stammtisch Berlin 16. Maerz (Gloinson, 28. Feb 2005, 21:26:37):
Zum Mittwoch, den 16. Maerz wurde dem Schreiber dieser Zeilen eine 
Erscheinung der hoeheren Art im Club Melle angekuendigt. Zum Zwecke der 
philosophische Diskussion dieses Phaenomens und dem Durchbrechen etwaiger 
Fastenrituale findet also ein

    Stammtisch am Mittwoch, den 16. Maerz
                  ab 20 Uhr
                     im
                  Club Melle

    Ort:  Mellenseestrasse 41/Keller
          Unweit U Tierpark/S Btrbhf Rummelsburg
          Bushaltestelle: Mellenseestrasse/Sewanstrasse

statt. Studentisch akzeptable Preise, Cocktails auf Anfrage, grosse 
Bierauswahl und harte Kickergegner locken.

PS: Diverse andere Fuehrer der unfreien Welt sollten schon in den Tagen
    davor erdolcht werden.


-----------------------------------------------------------------------------



3. Programmierfruehstuecksstammtisch (Miril,  3. Mar 2005, 00:02:04):
Huhu!
Ich wollte nur noch mal dran erinnern, dass wir fuer Sonntag, den 6.3.
wieder einen Tisch im Merlin reserviert haben (www.merlin-die-waldkneipe.de).

Kommet zuhauf und mit USB Stick oder so.

Miril

-----------------------------------------------------------------------------



Stati KAR (Amaryllis, 10. Mar 2005, 19:08:18):
190000 BMZIKAR


-----------------------------------------------------------------------------



Stammtische Karlsruhe 24.3/31.3/7.4/14.4/21.4 (Croft, 18. Mar 2005, 09:24:50):
Die naechste Orte wurden festgelegt.  Wir probieren teilweise neues aus.
24.3 Zum Drachen (http://www.zumdrachen.de/)
31.3 Hofgalerie (http://www.hofgalerie.sportkneipe.de/)
 7.4 La Tegola (Jollystrasse 19)
14.4 Green Corner (Gruenwettersbach, Am Wetterbach 90)
21.4 Schnitzelparadies (Stutensee, Unteres Brunnenfeld 4)
Beginn wie immer um 20:00.  Desweiteren scheint sich beim Kleinen
Meierhof etwas zu tun.  Die Rollos waren die letzten Abende immer unten
und der Kasten in dem normalerweise die Karte aushaengt (oder in dem
ueber Urlaub u.ae. informiert wird) ist komplett leer.  Wir sind
gespannt, was dort als naechstes reinkommt.

Croft

-----------------------------------------------------------------------------



4. Programmierfruehstuecksstammtisch (Mieze, 18. Mar 2005, 21:48:33):

Hallo,

am 20.03. gibt es den 4. Programmierfruehstuecksstammtisch im Merlin
(Essen-Kupferdreh) ab 11 Uhr. Wegbeschreibungen und Co gibt es unter
www.merlin-die-waldkneipe.de

Kommet zuhauf und mit USB Stick oder so. (c) Miril 2005

Mieze - bringt einen Chaosdaemonen und Gast1 mit, aber nicht Gast1 aus Werne
;o)


-----------------------------------------------------------------------------



Stammtische Karlsruhe 14.4/21.4/28.4 (Croft, 13. Apr 2005, 18:19:46):
Kleines Update bevor der letzte Artikel im Archiv versackt:
14.4 Green Corner (Gruenwettersbach, Am Wetterbach 90)
21.4 Schnitzelparadies (Stutensee, Unteres Brunnenfeld 4)
28.4 Zeus (Durlach, Pfinztalstr. 75)
Beginn wie immer um 20:00.  Bzgl Kleiner Meierhof sind keine Aenderungen
zu vermelden.  Rollaeden scheinen immer unten zu sein und ausser der
Putzanleitung haengt nichts im Schaukasten.

Croft

-----------------------------------------------------------------------------



Vier Winde zur Abwechslung (Miril, 21. Apr 2005, 22:45:34):
Am Samstag wollen wir uns mal wieder im Vier Winde in Bochum treffen.
Uhrzeit: 19.30 Uhr

Wer Lust hat kann kommen, evtl. kann man auch schon mal ueber Party im Pott
sprechen.

Miril

-----------------------------------------------------------------------------



Fruehstueck mal wieder (Miril, 28. Apr 2005, 18:58:47):
Am

Sonntag, den 1.5.2005 

treffen wir uns mal wieder im Merlin zum sonntaeglichen Mudfruehstueck.
Wollt ich nur noch mal dran erinnern.

Miril

-----------------------------------------------------------------------------



GrillStati 5.5.5 05:00 PM (Mesirii, 30. Apr 2005, 04:03:06):
Bevor ich es wieder verschwitze, zu o.a. Termin wird nach der
Maennertagswanderung ein
Grillstati bei uns stattfinden.
Bitte entweder fuer Selbstverpflegung sorgen (ggf. auch was fuer die anderen
mitbringen)
und/oder alternativ Bedarf anmelden.
Ort: Holbeinstr. 139, Dresden
Mesi

-----------------------------------------------------------------------------



Stammtische Karlsruhe 5.5/12.5/19.5 (Croft, 30. Apr 2005, 22:12:24):
Da die letzten Termine auch schon alle vorrueber sind, gibts hier die neuen:
 5.5  Zum Drachen              www.zumdrachen.de
12.5  Green Corner             Gruenwettersbach, Am Wetterbach 90
19.5  Kleiner Meierhof         Na wo wohl?
Ja, ihr habt richtig gelesen.  Der KM hat am 13.5 Neueroeffnung.  Wir sind
gespannt ob wir die Wanderung damit beenden koennen.

Croft

-----------------------------------------------------------------------------



Stati Nuernberg (Bambi,  1. Mai 2005, 12:02:22):
Donnerstag, 5. Mai 2005
ab 19 Uhr
Woehrder Wiese, Nuernberg

-----------------------------------------------------------------------------



Fruehstueck im Merlin (Miril, 14. Mai 2005, 09:47:49):
Am Sonntag findet wieder unser allseits beliebter Programmierfruehstuecks-
stammtisch im Merlin statt. Tolerant, wie wir sind, werden auch Wow'ler 
nicht rausgeworfen.
Zeit: ab 11 Uhr

Miril

-----------------------------------------------------------------------------



Stammtische Karlsruhe (Croft, 19. Mai 2005, 23:39:42):
Nachdem uns der Kleine Meierhof bis auf die etwas wenig umfangreiche
Speisekarte wieder zusagt, werden wir dort bis auf weiteres immer Donnerstag
ab 20:00 anzutreffen sein.  Am gewohnten Tisch versteht sich.

Croft

-----------------------------------------------------------------------------



Stammtisch Berlin 8. Juni (Gloinson, 25. Mai 2005, 13:20:42):

Aufgrund aktuellen Anlasses (Auftauchen und Erscheinen diverser Einzelhexen 
in Berlin) findet am 8. Juni einer dieser notorisch versoffenen Stammtische 
im Club Melle statt.

Motto des Abends wird "Denkt an Guard!" sein.

Falls Guard doch auftaucht ist das Motto trotzdem "Denkt an Guard!". Nicht, 
dass wir ihn im Club vergessen.

                    Zeit: 8. Juni, ab 20 Uhr
                    Ort:  Club Melle
                          Mellenseestrasse 41, Berlin
                          http://www.club-melle.de/

Koemmet in Haeufchen!


-----------------------------------------------------------------------------



Programmierfruehstueck (Miril, 28. Mai 2005, 08:46:12):

Morgen, also am 29.05.2005 treffen wir uns wie gewohnt ab 11 Uhr im
Merlin. Wollte ich nur noch mal dran erinnern.

Miril

-----------------------------------------------------------------------------



Stammtische Berlin 29. Juni/1. Juli (Gloinson, 29. Mai 2005, 02:51:01):
Da ein schnell rennender und herummeepender Vogel demnaechst in Berlin
aufschlaegt, wird
es in Berlin

(a) definitiv am 29. im Club Melle einen Vogel-StaTi geben
(b) vielleicht am 1. Juli einen Grillstati geben, wobei das Wetter
entscheidet.

Details irgendwann.


-----------------------------------------------------------------------------



Stammtisch Nuernberg (Bambi, 31. Mai 2005, 19:01:28):
Am Freitag, den 10.Juni 2005 soll, so das Wetter mitspielt, auf der Woehrder
Wiese ein Stati stattfinden.
Wer Interesse hat, ist herzlich dazu eingeladen, vorbeizukommen.

Beginnen soll das Ganze um ~19 Uhr.

-----------------------------------------------------------------------------



Spontanstati in Bochum (Taranis, 17. Jun 2005, 23:33:28):
Wir haben uns spontan entschlossen uns morgen Abend in den Vier-Winden in
Bochum zu treffen. D.h.

Sa, 18.06.2005, 20:00 in den Vier-Winden,
Hofsteder Strasse 94 in Bochum.
(Wegbeschreibung auf Anfrage)


Falls wir dort keinen Platz mehr finden, gehen wir vorraussichtlich ins
Mandragora im Bermuda-Dreieck.
Bitte ueberprueft ggf. ob ihr eine Mobiltelefonnr. von Requiem, Taranis,
Arathorn oder Mieze habt, fuer den Fall, dass wir woanders hinmuessen. ;-)

Kommet zuhauf! (Wer hat da denn das Copyright? *g*)
Taranis

-----------------------------------------------------------------------------



Stammtisch Berlin 1. Juli (Gloinson, 22. Jun 2005, 14:11:18):
Da demnaechst einer dieser komischen Mudder aus dem Sueden vorbeimeept, rufe
ich hiermit einen Stammtisch zum Freitag, den 1. Juli aus.

Anbetracht der Moeglichkeit guten Wetters findet dieser Stammtisch
voraussichtlich grillenderweise im Gruenen statt. Der genaue Ort ist hiermit
zur Planung ausgeschrieben.

Meine Vorschlaege sind vorerst:
Langer See:
http://www.multimap.com/map/browse.cgi?lat=52.4075&lon=13.6192&scale=5000
(S Gruenau, Tram 68 bis Strandbad Gruenau oder Richtershorn)
Volkspark Friedrichshain:
http://www.multimap.com/map/browse.cgi?lat=52.5294&lon=13.4444&scale=5000

                    Zeit: 1. Juli, ab 18 Uhr
                    Ort:  zu bestimmen

Bei schlechtem Wetter wuerden wir wieder in den exes-Pool zum Cocktailtrinken
ausweichen.

Koemmet in Haeufchen!


-----------------------------------------------------------------------------



Karlsruhe (Hobo, 28. Jun 2005, 14:00:19):
Hallo,
wir werden am Samstag, den 2. Juli wieder mal bei unserem Ex-Ex-Wirt (Tunesier
wird nicht mitgerechnet) vorbeischauen. Dafuer treffen wir uns um 16 Uhr auf
dem altbekannten Uniparkplatz an der Informatik bzw. fuer Direktkommer um
16:30 Uhr in Buechenau in der Seemuschel.

Wer kommen will, soll mir bitte eine Mail schicken, damit Panos auch genug
Essen und Platz fuer uns hat :)

Ciao

    Karin
      - aeh, Hobo ;)

-----------------------------------------------------------------------------



Re: Stammtisch Berlin 1. Juli (Gloinson,  1. Jul 2005, 00:51:30):
~#! rn=Gloinson rt=1119442278 rg=treffen.bekanntmachungen
~#! tid=1119442278
Aufgrund des Wetterberichtes wird der Stammtisch gaaanz spontan wieder
mal nach drinnen verlegt. Also:

    Stammtisch am Freitag, den 1. Juli
                  ab 20 Uhr
                     im
                  Exes Pool

    Ort:  Wuehlischstrasse 30, 10245 Friedrichshain
          Zwischen S/U Warschauer Strasse und U Frankfurter Tor

Happy Hour wieder von 20-22 und 1-x Uhr.


-----------------------------------------------------------------------------



KA Stammtisch 14.7 (Croft,  8. Jul 2005, 14:51:54):
Da wir die Stammtischwanderung fast etwas vermissen, wurde beschlossen
einmal im Monat einen anderen Ort aufzusuchen.  Der Uebersicht wegen
wird dies immer der erste Donnerstag des Monats sein.  Da wir diesen
Monat aber schon jeniglichen Donnerstag im KM waren, geht es naechste
Woche ins Green Corner, Gruenwettersbach, Am Wetterbach 90.  Beginn
wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch am 01.08.2005, 15:00 im ICE 549 (Mesirii,  1. Aug 2005, 13:53:30):

bisher anwesend: Maharet, VanHelsing, Mesirii.

Verpflegung haben wir etwas da, der Rest kann
bei der DB erworben werden.

Kommet zuhauf.


Mesi, Ankuendigungszwerg

-----------------------------------------------------------------------------



KA Stammtisch 4.8 (Croft,  1. Aug 2005, 18:24:58):
Diesen Donnerstag treffen wir uns im Drachen (www.zumdrachen.de).  Beginn
wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Fruehstueck im Merlin (Miril, 20. Aug 2005, 10:30:29):

Morgen, am 21.08.2005 treffen wir uns mal wieder um gemuetlichen Programmier-
Icewars-wasauchimmer-Stammtisch im Merlin. Auswaertige sind wie immer
willkommen.

Miril

-----------------------------------------------------------------------------



Stammtish in der Ta Nona Bar in Xlendi  auf Gozo (Muadib, 23. Aug 2005, 20:02:54):
Hi,

am kommenden Samstag findet ein Stati in besagter Bar statt.
Es kommen sicher> Vanion, tryfan, Zephzyr und Muadib.

Gruss

   Muadib

-----------------------------------------------------------------------------



KA Stammtische 1.9 & 8.9 (Croft, 25. Aug 2005, 21:42:12):
Da der naechste Donnerstag der erste Donnerstag des Monats ist, sind
wir nicht im KM anzutreffen, sondern diesmal im Green Corner
(Gruenwettersbach, Am Wetterbach 90).  Und den Donnerstag darauf am
8.9 treibt es uns dann wieder in den Drachen (www.zumdrachen.de).
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stammtisch in Darmstadt am 22. September 2005 (Zook, 31. Aug 2005, 17:16:33):
Ohne Erbarmen findet nun wieder einmal ein Stammtisch in Suedhessen
statt. Am Donnerstag, 22. September 2005, treffen wir uns in 
Darmstadt.

Der genaue Orte kann in diesem Medium nachgelesen werden; wer nicht 
regelmaessig hier liest, kann auch eine Informationsmail von mir haben.

Gruss, Zook.

PS: Zwecks Oertlichkeit waere es nett, dass Nicht-uebliche-Verdaechtige
vielleicht kurz bei mir notifizieren, wenn sie kommen moechten... 

-----------------------------------------------------------------------------



Re: Stammtisch in Darmstadt am 22. September 2005 (Zook, 31. Aug 2005, 22:26:25):
~#! rn=Zook rt=1125501393 rg=treffen.bekanntmachungen
~#! tid=1125501393
Es ist mir eine besondere Ehre folgendes bekannt zu geben:

Ich habe kraft meiner mir verliehenen Rechte Ark als apostolischen
Gesandten und Beauftragten zur Festlegung des Stammtischortes ernannt.

Ich approbiere hiermit feierlich seine Festsetzung in vorbezeichneter
Angelegenheit:

Der Stammtisch findet um 19 Uhr im Hotenplotz statt.


Zook.

-----------------------------------------------------------------------------



Re: Re: Stammtisch in Darmstadt am 22. September 2005 (Zook, 31. Aug 2005, 22:27:25):
~#! rn=Zook rt=1125519985 rg=treffen.bekanntmachungen
~#! tid=1125501393
Als Corrigendum gebe ich bekannt:

Das goettliche Ohr und die Finger sind .... behandlungsbeduerftig.

Es muss heissen: HOTZENPLOTZ!

Zook.

-----------------------------------------------------------------------------



Merlin (Miril,  2. Sep 2005, 15:54:12):
Am Sonntag, den 4.9. sind wir mal wieder im Merlin anzutreffen (ab 11 Uhr).
Diesmal evtl. nicht ganz so lange, muss den Hund hueten ;).

Miril

-----------------------------------------------------------------------------



Stati in Bochum (Humni,  9. Sep 2005, 20:43:40):
In der Stadt, die schon Herbert Groehnemeyer sehr erfolgreich besang, wird es
wieder einen Stammtisch geben. Im Vier Winde. Das sind einer mehr als drei,
aber keineswegs fuenf.

Das Ganze soll stattfinden am 10.9. ab ca. 20 Uhr oder so. Also, alle
hinkommen. Byzantiner und Met trinken.

Humni

-----------------------------------------------------------------------------



Stammtisch in Hamburg am 23.09.2005 (Perdita, 13. Sep 2005, 19:22:57):
Ahoi allerseits!
Die Hamburger haben sich mal wieder zu einem Stammtisch aufgerafft!

Am 23.09.2005 um 19.30 Uhr in der "Backatelle" in Hamburg-Barmbek,
Fuhlsbuettler Str. 136.

Ueber einheimische und auswaertige Gaeste wuerden wir uns sehr freuen!

Perdita

-----------------------------------------------------------------------------



Stati in Berlin (Martini, 16. Sep 2005, 13:25:20):
Fuer die, die nicht auf der Berliner Mailingliste stehen:

Wir wollen Madness gebuehrend verabschieden, und zwar 
im Exespool ab 20 Uhr.

Kommet zu Hauf!

Martini

-----------------------------------------------------------------------------



Re: Stati in Berlin (Martini, 16. Sep 2005, 13:27:30):
~#! rn=Martini rt=1126869920 rg=treffen.bekanntmachungen
~#! tid=1126869920
Ja, ich weiss, ich hab den Tag vergessen. :)

Also nochmal: Samstag 17.9. im Exespool ab 20 Uhr.

Martini

-----------------------------------------------------------------------------



Re^3: Stammtisch in Darmstadt am 22. September 2005 (Zook, 20. Sep 2005, 10:38:07):
~#! rn=Zook rt=1125520045 rg=treffen.bekanntmachungen
~#! tid=1125501393
Als zweites Corrigendum gebe ich bekannt:

Bitte ca. 30m weiter gehen (nach links oder rechts, je nachdem wie man
guckt) und in den Hobbit einkehren. 

Kurz: Nicht Hotzenplotz, sondern Hobbit.

Zook.

-----------------------------------------------------------------------------



Re^4: Stammtisch in Darmstadt am 22. September 2005 (Zook, 20. Sep 2005, 12:20:01):
~#! rn=Zook rt=1127205487 rg=treffen.bekanntmachungen
~#! tid=1125501393
Zusammenfassung:

Stammtisch in Darmstadt
Am Donnerstag 22. September 2005 
Um 19.00 Uhr im Hobbit

Zook.

-----------------------------------------------------------------------------



Merlin, 25.9.2005 (Humni, 24. Sep 2005, 17:52:02):
Huhu,

wie gewohnt ist morgen, ab 11 Uhr, Treffen in Essen im Merlin, mit Essen.
Haha, ein Kalauer. Es ist aber kein Treffen in Brunch, wohl aber mit Brunch.
Haha.

Humni

-----------------------------------------------------------------------------



Stammtisch in Essen-Kupferdreh am 30.09.2005 (Taranis, 25. Sep 2005, 19:34:11):
Unter anderem anlaesslich der Anwesenheit zweier externer Gaeste (u.a. eines
gewissen Ex-Erzmagiers *g*) treffen wir Ruhrgebietler mal wieder zu einem
Abend-Stammtisch:

Am Freitag, den 30.09.2005,
im Merlin in Essen-Kupferdreh
ab 20:00.

Wegbeschreibungen auf Anfrage oder unter http://www.merlin-die-waldkneipe.de/

Kommet zuhauf!

Taranis

-----------------------------------------------------------------------------



KA Stammtisch 6.10 (Croft,  4. Okt 2005, 15:15:51):
Diesen Donnerstag geht es wieder in den Drachen (www.zumdrachen.de).  Wo wir
in der Woche darauf sind, haengt noch von der Verfuegbarkeit von 1-2 Autos
ab.  Gruenwettersbach ist momentan mit oeffentlichen Verkehrsmittel aufgrund
einer Baustelle nur mit Umweg zu erreichen.  D.h. klappt das mit den
Fahrzeugen, so werden wir im Green Corner sein, klappt es nicht, ist der
Drache ein recht wahrscheinlicher Stammtischort.

Croft

-----------------------------------------------------------------------------



KA Stammtisch 13.10. 19:30 (Croft, 10. Okt 2005, 11:39:28):
Die Idee mit dem Green Corner hat sich anderwaertig zerschlagen.  Der
Stammtisch findet wieder im Drachen statt (www.zumdrachen.de),
allerdings beginnt er schon ausnahmsweise um 19:30.  

Croft

-----------------------------------------------------------------------------



Spielemesse 13.-16.10. (Montanus, 11. Okt 2005, 09:15:01):
Falls ich bis dahin wieder meine Stimme gefunden habe, kann man mich in Halle
9 an Stand 38 treffen. Wie letztes jahr hinten in der Ecke.

-----------------------------------------------------------------------------



Merlin (Nedime, 22. Okt 2005, 09:29:25):
Morgen, am 23.10.2005 findet wieder unser Programmierstammtisch im Merlin
statt. So zwischen 11 und 11:30 Uhr (meist letzteres) fangen wir an.

Kommet zuhauf oder so und mit Laptop.

Nedime

-----------------------------------------------------------------------------



Flammkuchen (Hobo, 23. Okt 2005, 00:09:01):
Es wintert sehr, die Zeit ist reif...

Karlsruher und Gaeste wollen wieder einmal Flammkuchen essen gehen und haben
dafuer Freitag, den 25. November auserkoren.
Zielpunkt wird wieder das gleiche Lokal wie letztes Mal sein, genauer Weg,
Uhrzeit etc. gibt's dann spaeter.

Achja: Anmeldungen an mich per Mail bitte :)

  Hobo

-----------------------------------------------------------------------------



Stati Marburg ... (Zook, 26. Okt 2005, 00:35:27):
Ja sacklzement. Wie konnte mir das passieren? Nun ja, jedenfalls fand ein
Stati in Marburg statt am 25. Oktober 2005, von 19.00 Uhr an im "Auflauf";
villeicht schafft Ihr es ja das naechste mal auch zu koemmen. ;) Zook.

-----------------------------------------------------------------------------



Stati in Bochum (Nedime, 26. Okt 2005, 22:42:45):
Huhu

am Samstag, den 29.10.2005 machen wir mal wieder einen Stammtisch in
den Vier Winden in Bochum. Wegbeschreibung gibt es auf Anfrage. Diesmal
kommen auch Arathorn und Dunst wieder. Wer sonst noch?

Achja, ich vergess immer die Uhrzeit: 20:00 Uhr.

Bis dann,
Nedime

-----------------------------------------------------------------------------



Merlin (Miril,  2. Nov 2005, 22:10:39):
Huhu!

Auch naechsten Sonntag, also am 6.11. um ca. 11:30 Uhr findet wieder unser
vierzehntaegiger, allseits beliebter Fruehstuecksstammtisch im Merlin 
(www.merlin-die-waldkneipe.de) statt.

Kommet (mal wieder) zuhauf ;). Mudden fuer lau, Essen bis zum Abwinken und
natuerlich die netten Ruhrgebietler sollten doch Anreiz genug bieten.

Miril

-----------------------------------------------------------------------------



KA Stammtisch 3.11 (Croft,  3. Nov 2005, 00:46:19):
Etwas kurzfristig, aber dennoch: morgen treffen wir uns mal wieder
im Drachen (www.zumdrachen.de), Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Hamburg am 18.11.2005 (Perdita,  5. Nov 2005, 17:45:48):
Ahoi allerseits!
Es wird mal wieder einen Stammtisch in Hamburg geben, und zwar
am Freitag, den 18.11.2005, um 19.30 Uhr
wie immer in der Backatelle in Barmbek, Fuhlsbuettler Str. 138
Auch externe Gaeste sind selbstverstaendlich herzlich willkommen!
Perdita

-----------------------------------------------------------------------------



KA Stammtisch 10.11 (Croft,  7. Nov 2005, 15:20:03):
Diesen Donnerstag sind wir mal wieder im Green Corner (Gruenwettersbach,
Am Wetterbach 90) zu finden.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stammtisch 17.11. (Tassram, 16. Nov 2005, 18:16:21):
Diesen Donnerstag treffen wir uns bereits um 19:30 Uhr und testen mal
was neues aus: Taverne Der Grieche Kaiserstr. 16 (das ist am Kronenplatz
links neben der Post).

-----------------------------------------------------------------------------



Merlin mal wieder (Miril, 18. Nov 2005, 17:57:05):
Hier werden keine Magier gemacht, dafuer aber gefruehstueckt, gespielt und
programmiert oder geicewared. Wer sich dafuer interessiert, kann gerne am
Sonntag, den 20.11. so gegen 11:30 Uhr dort aufschlagen.

Wie immer gibts den Weg unter www.merlin-die-waldkneipe.de.

Miril

-----------------------------------------------------------------------------



KA Stammtisch 24.11 (Croft, 22. Nov 2005, 17:42:35):
Uebermorgen findet der Stammtisch mal wieder im Drachen (www.zumdrachen.de)
statt.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Flammkuchen am 25.11 faellt aus (Croft, 23. Nov 2005, 16:06:14):
Da verhaeltnismaessig viele Leute abgesagt haben und wir vermutlich nur
mit 7-9 Leuten unterwegs waeren (normalerweise waren es immer 15-20)
verschieben den Termin auf Anfang naechsten Jahres.  Genaueres gibt
es dann natuerlich wieder an dieser Stelle.

Croft

-----------------------------------------------------------------------------



Weihnachtsmarkt Darmstadt (Grimmborn, 25. Nov 2005, 21:51:13):
~#! on=Miraka ot=1132937035 og=treffen
Froit Oich, es klingeln die Glocken,
alle Spieler horchen auf, frohlocken.
In Darmstadt, der Weihnachtsmarkt, er liegt vor der Tuer,
und viele Spieler sich ja freuen hierfuer.
Deshalb spricht sie Euch an, die kleine Karateka:
Kommet nach Darmstadt, am 01.12., zur neunzehnten Stund', fuerwahr.
Der Gluehwein, er duftet so wuerzig, so gut,
wir waermen uns rotbaeckig an des Feuers roter Glut.
Der Aufruf erschallt einmal, nun schnallt an das Geschirr,
kommet nach Darmstadt, schaut nicht so wirr.

Miraka Mandros, Tigerin von Xian.

-----------------------------------------------------------------------------



Re: Weihnachtsmarkt Darmstadt (Miraka, 28. Nov 2005, 17:26:26):
~#! rn=Grimmborn rt=1132951873 rg=treffen.bekanntmachungen
~#! tid=1132951873
Nachdem schon eine Absage kam, koennen sich die, die zu kommen planen, mal
melden? Nicht, dass ich nachher alleine frierend rumstehe. Treffpunkt waere am
Luisenplatz, unterhalb vom Langen Ludwig, schaetze, das ist nicht zu verfehlen
:-)

Miraka Mandros, Tigerin von Xian.

-----------------------------------------------------------------------------



KA Stammtisch 1.12 (Croft, 29. Nov 2005, 11:08:27):
Diesen Donnerstag geht es nochmal in die Taverne Der Grieche am
Berliner Platz (Kaiserstr. 16, neben der Post).  Beginn ist bereits
um 19:30.

Croft

-----------------------------------------------------------------------------



Re: Re: Weihnachtsmarkt Darmstadt (Miraka, 29. Nov 2005, 13:32:56):
~#! rn=Miraka rt=1133195186 rg=treffen.bekanntmachungen
~#! tid=1132951873
Ok, keiner gemeldet, ich friere ungern allein, also Verschiebung des Ganzen
auf 06.12. Und jetzt erwarte ich mind. eine Meldung ... los!

Miraka Mandros, Tigerin von Xian.

-----------------------------------------------------------------------------



Stammtisch-Vorankuendigung Hamburg 7.1.2006 (Perdita, 30. Nov 2005, 17:47:14):
Moinmoin allerseits,
hiermit kuendige ich schonmal den naechsten Hamburger Stammtisch an.
Er wird ausnahmsweise an einem Samstag stattfinden, und zwar am 7.1.2006.
Erwartete Special Guests bisher Muadib und Mieze.
Naehere Details zu Zeit und Ort werden hier noch rechtzeitig bekannt gegeben.

Perdita

-----------------------------------------------------------------------------



Merlin (Miril,  2. Dez 2005, 18:52:10):
Da man nun keinen Schneepflug mehr braucht, um dorthin zu kommen, wollte
ich nur noch mal dran erinnern, dass am Sonntag, den 4.12. wieder einmal
Fruehstueck im Merlin angesagt ist. Wie immer so gegen halb 12.

Miril

-----------------------------------------------------------------------------



Weihnachtsmarkt Essen (Taranis,  6. Dez 2005, 22:11:17):
Wir haben uns entschlossen, auch dieses Jahr wieder einen Weihnachtsmarkt im
Ruhrgebiet zu besuchen. Diesmal leider etwas kurzfristig, hoffentlich koennen
trotzdem einige von euch. Also:
Weihnachtsmarkt Essen,
16.12.2005 ab 17:00

Genauen Treffpunkt bitte bei Interesse erfragen, wir suchen uns noch einen
markanten Punkt aus. Wenn jemand spaeter hinzukommen will, ist das auch kein
Problem: Einfach melden, dann sprechen wir Treffpunkt und -zeit ab. :-)

Kommet zuhauf!
Taranis

-----------------------------------------------------------------------------



KA Stammtisch 8.12. (Tassram,  7. Dez 2005, 21:01:12):
Da ich bisher nur von Quaak@Unitopia weiss, dass er morgen zum Stammtisch
kommen wird, hab ich mal beschlossen, dass wir in den Drachen gehen und
da gucken, ob noch irgendwer auftaucht.
Tassram

-----------------------------------------------------------------------------



KA Stammtische 15.12 & 22.12 (Croft, 14. Dez 2005, 12:13:26):
Uebermorgen findet der Stammtisch im Drachen (www.zumdrachen.de)
statt.  Beginn diesmal schon um 19:30.
Und naechste Woche geht es dann ins Green Corner (Gruenwettersbach, Am
Wetterbach 90), Beginn wie sonst immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stammtische 29.12 & 5.1 (Croft, 28. Dez 2005, 13:44:25):
Morgen findet der Stammtisch auf Wunsch eines Gastes im Drachen statt
(www.zumdrachen.de).  Die Woche darauf geht es dann wieder in die
Taverne Der Grieche (Kaiserstr. 16, neben der Post).  Beginn ist
jeweils um 20:00.

Croft

-----------------------------------------------------------------------------



Merlin 1/06 (Miril,  3. Jan 2006, 21:33:57):
Huhu

am Sonntag, den 8.1.2006 duerfen die NPCs im Merlin mal wieder unser 
Durchhaltevermoegen bewundern und uns mit Fragen zu dem komischen Spiel 
loecher, dass wir da spielen. Treffen ist wie immer gegen 11.30 Uhr zum
kreativen oder vielleicht dieses mal zum Ausruestungsfruehstueck.

Wer nicht weiss, wo er hin muss: www.merlin-die-waldkneipe.de

Miril

-----------------------------------------------------------------------------



Stammtisch in Hamburg am Samstag, 7.1.2006 (Perdita,  5. Jan 2006, 18:48:42):
Hallo Freunde des Nordens!
Wie vorangekuendigt steigt der Hamburger Stammtisch am Samstag, den 7.1.2006.
Leider werden unsere beiden angekundigten Spezialgaeste nun wohl doch nicht
dabei sein.
Davon lassen wir uns aber nicht abschrecken, sondern treffen uns trotzdem

um 19.30 Uhr
in der Backatelle Barmbek, Fuhlsbuettlerstr. 138.

Also eigentlich wie immer, nur dass es ein Samstag ist.

Ahoi!
Perdita

-----------------------------------------------------------------------------



KA Stammtische 12.1, 19.1 & 26.1 (Croft, 11. Jan 2006, 20:47:55):
Die naechsten Termine:
12.1 Green Corner (Gruenwettersbach, Am Wetterbach 90)
19.1 Zum Drachen (www.zumdrachen.de)
26.1 Taverne Der Grieche (Kaiserstr. 16, neben der Post)
Beginn ist jeweils um 20:00

Croft

-----------------------------------------------------------------------------



Flammkuchen! (Hobo, 25. Jan 2006, 23:37:47):
Hallo allerseits,

nach Stammtischgeplaenkel und zusaetzlicher "externer" Absprache steht der
naechste Flammkuchentermin fest.

Am Samstag, dem 11. Februar wollen wir uns wieder mal ins Elsass begeben und
in der "Ecurie" in Neuhaeusel schlemmen.
Anmeldungen wie immer an mich bis zum 4.2. (dann kann ich auch rechtzeitig
bestellen)

   Hobo - freut sich schon!

-----------------------------------------------------------------------------



Stati in Essen-Kupferdreh (Taranis, 29. Jan 2006, 23:22:32):
Huhu,

wir wollen uns mal wieder zu einem Abend-Stati treffen:

am 11.2., ab 19:30,
im Merlin (http://www.merlin-die-waldkneipe.de/),
in Essen-Kupferdreh
(Wegbeschreibungen auf Anfrage.)

U.a. hat auch ein gewisser Ex-Exerzmagier sein Kommen angekuendigt. ;-)

Wenn jemand in der Naehe uebernachten will bzw. Probleme mit dem
Zurueckkommen spaetabends hat, besteht grundsaetzlich auch die Moeglichkeit,
bei Miril oder mir zu uebernachten, bitte im Vorfeld dann mal melden.

Ansonsten ueberlegen wir auch, am Sonntag noch gemeinsam zu fruehstuecken
bzw. noch was zu unternehmen (Wandern, o.ae.).

Kommet zuhauf!
Taranis

-----------------------------------------------------------------------------



KA Stammtisch 2.2 (Croft, 30. Jan 2006, 13:06:49):
Der Stammtisch findet diese Woche im Drachen statt (www.zumdrachen.de).
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stammtisch am 3. Februar in Berlin (Gloinson,  2. Feb 2006, 15:09:30):
Hi,
wir haben es etwas vergammelt anzusagen:

           Stammtisch in Berlin
           3. Februar (Freitag)
           20 Uhr c(e)t
           Cafe Seeblick
           Rykestrasse 14, Berlin-Prenzlauer Berg
           
Wer es nicht erkennt: das ist die alte Stammtischkneipe Berlins. Lageplan
hier:
www.multimap.com/map/browse.cgi?lat=52.5369&lon=13.4209

Erreichbar von U2 Senefelder Platz.


-----------------------------------------------------------------------------



KA Stammtisch 9.2 (Croft,  8. Feb 2006, 15:03:23):
Die Wahl ist auf das Green Corner (Gruenwettersbach, Am Wetterbach 90)
gefallen.  Beginn 20:00.

Croft

-----------------------------------------------------------------------------



Re: Flammkuchen! (Hobo, 10. Feb 2006, 22:33:08):
~#! rn=Hobo rt=1138228667 rg=treffen.bekanntmachungen
~#! tid=1138228667
*huestel*
Etwas kurzfristig, aber hoffentlich rechtzeitig:
Treffpunkt fuer Flammkuchen am Samstag ist wie immer Uniparkplatz (allein
schon, um mit weniger Autos zu fahren), 18:30 Abfahrt!

Ciaociao

    Hobo

-----------------------------------------------------------------------------



Erlangen (+ Nbg, Fue) Treffen in der Fat Lady (Marcus, 12. Feb 2006, 20:16:21):
Hi,

Da wir schon lange nicht mehr in der Fat Lady Sings in Erlangen
waren, rufe ich einfach mal fuer morgen ein Treffen in der Fat Lady aus,
so gegen 19:00 / 19:30. :)

(Marcus, Lacri, Grimmborn als Gaeste bis jetzt)

Auf zum Guinness vernichten!

Ciao, Marcus

-----------------------------------------------------------------------------



KA Stammtisch 16.2 (Croft, 14. Feb 2006, 23:53:05):
Der Stammtisch wird diese woche im La Tegola (Jollystrasse 19) stattfinden.
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stammtisch 23.2 (Croft, 20. Feb 2006, 12:52:54):
Diese Woche gehts wieder in die Taverne Der Grieche (Kaiserstr. 16, neben der
Post).  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stammtisch 2.3 + 9.3 (Croft,  1. Mar 2006, 12:19:35):
Morgen gehts mal wieder ins Green Corner (Gruenwettersbach, Am Wetterbach 90)
und naechste Woche sind wir im Drachen (www.zumdrachen.de) zu finden.
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Essen Stammtisch 10.3. (Taranis,  6. Mar 2006, 20:04:57):
Nachdem wirs letztes Mal total vergessen haben, irgendwas anzukuendigen,
diesmal wieder ein paar Tage im Vorfeld. ;-)
Wir treffen uns am
Freitag, 10.3. ab 19:30
im Merlin in Essen-Kupferdreh.

Wegbschreibungen fuer Ortsfremde wie immer auf Anfrage. ;-)

Viele Gruesse,
Taranis

-----------------------------------------------------------------------------



Stati mit Anoris am 10.03.06 (Gwen,  8. Mar 2006, 09:39:34):
Da Anoris sich aus der verschneiten Schweiz ins sonnige Mittelfranken begibt,
haben wir einen hoechst willkommenen Anlass, mal wieder einen Stammtisch
zu organisieren.
Interesse besteht reges, nur sind freie Termine anscheinend rar.
Der Termin, der fuer die meisten passte ist der Freitag:

Termin: 10.03.05, ab 19:00 Uhr (vor 20:00 Uhr ist Happy Hour ;) )
Ort:    Sausalitos, Fuerth
        (Friedrichstr. 7, naehe Bahnhof/Sparkassenzentrale => U1 moeglich)

Sicher kommen wollen: Bambi, Gwen, Lacri, Marcus, Pardauz

Ciao, Gwen.

-----------------------------------------------------------------------------



KA Stammtisch 16.3 + 23.3 (Croft, 10. Mar 2006, 12:48:19):
Am 16.3 geht es wieder in die Taverne Der Grieche (Kaiserstr. 16,
neben der Post).  Und am 23.3 treffen wir uns in Gruenwettersbach in
dem spanischen Restaurant.  Genauer Angaben, wo der Spanier ist, kann
Hobo machen, die zwecks Platzreservierung auch kontaktiert werden
muss.  Beginn ist jeweils um 20:00.

Croft

-----------------------------------------------------------------------------



Stati Essen, 24.03. (Taranis, 22. Mar 2006, 22:57:20):
Huhu,

wiedermal etwas verkuerzte 'Vorwarnzeit', ich weiss, aber der naechste Stati
bei uns ist:
am Freitag, 24.03.
ab 19:30
im Merlin, Essen-Kupferdreh.

Also, eigentlich alles ganz normal und wie immer. ;-)

Viele Gruesse,
Taranis

-----------------------------------------------------------------------------



KA Stammtisch 30.3 + 6.4 (Croft, 27. Mar 2006, 11:48:07):
Die naechsten beiden Donnerstage gehts in den Drachen (www.zumdrachen.de).
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Essen Stammtisch 7.4.06 (Zesstra,  2. Apr 2006, 23:26:07):
Huhu,

so, diesmal wieder rechtzeitiger. ;-)

Wir treffen uns am
Freitag, 7.4. ab 19:30
im Merlin in Essen-Kupferdreh.

Wegbschreibungen fuer Ortsfremde wie immer auf Anfrage.
Wenn jemand nicht unbedingt spontan entscheiden moechte, waer ich ueber ein tm
oder ne kurze Mail dankbar (wenn moeglich bis Mittwoch Abend), dann kann man
gezielter einen Tisch reservieren. ;-)

Viele Gruesse,
Zesstra

P.S. Nur, um es nochmal zu erwaehnen: Falls jemand von weiter weg kommen
moechte, bzw. nachts nicht mehr zurueckkommt, finde
t sich eigentlich immer ne Moeglichkeit, bei jemandem hier zu uebernachten.
Einfach mal einen von uns ansprechen. ;-)

-----------------------------------------------------------------------------



KA Stammtisch 13.4 + 20.4 (Croft, 11. Apr 2006, 10:26:23):
Diese Woche treffen wir uns in der Taverne Der Grieche
(www.taverne-der-grieche.de) und naechste Woche im Green Corner
(Gruenwettersbach, Am Wetterbach 90).  Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stammtisch am 5. Mai: Exes Pool (Gloinson, 19. Apr 2006, 01:39:04):
Hallo Muddervolk,
fuer Berlin ist hiermit angekuendigt ein Maistammtisch am Freitag, den
5. Mai.

  Ort:  Exes Pool, Wuehlischstrasse 30, Berlin Friedrichshain
  Zeit: 5. Mai, ab 20 Uhr
  
  Map:  www.multimap.com/map/browse.cgi?lat=52.5096&lon=13.457&icon=x
  BVG:  Linie M13, Wuehlischstrasse/Gaertnerstrasse

Vielleicht ist es ja gar schon so warm, dass man draussen sitzen
kann, dann ist das Raucherproblem fuer den werdenden Muddernachwuchs
auch geloest.

Falls das Wetter stimmt, koennten wir ja am Samstag (6. Mai) irgendwo
angrillen. Diskussion einfach am Freitag Abend. Bis dann!

Gloin(son)


-----------------------------------------------------------------------------



KA Stammtische 27.4 & 4.5 (Croft, 21. Apr 2006, 13:16:34):
Wieder eine Doppelpackankuendigung: Naechste Woche gehts nochmal ins
Green Corner (Gruenwettersbach, Am Wetterbach 90), uebernaechste Woche
in den Drachen (www.zumdrachen.de).  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Merlin (Miril, 27. Apr 2006, 21:19:46):
Getreu unserem Motto "Besser spaet als nie" kuendige ich hiermit unseren
allseits beliebten Freitagabendmerlinprogrammierstammtisch, der den
vormals noch beliebteren Sonntagsmorgensfruehstuecksmerlinprogrammier-
stammtisch abloest, an. Und zwar fuer 
Freitag, den 28.04.2006, gegen 20.00 Uhr.

Kommet zuhauf oder so.

Miril

-----------------------------------------------------------------------------



Re: Stammtisch am 5. Mai: Exes Pool (Gloinson,  2. Mai 2006, 21:57:55):
~#! rn=Gloinson rt=1145403544 rg=treffen.bekanntmachungen
~#! tid=1145403544
PS: Aufgrund der Anwesenheit von Suedfruchtzwergen nebst Snackereien fuer mich
beginnt das Ganze schon:

  Ort:  Exes Pool, Wuehlischstrasse 30, Berlin Friedrichshain
  Zeit: 5. Mai, ab 19 Uhr


-----------------------------------------------------------------------------



Stati in Essen am 12.05.06 (Zesstra,  6. Mai 2006, 21:54:51):
Huhu,

Am Freitag, 12.05.2006, wollen wir uns wieder im Merlin in Essen-Kupferdreh
treffen. Vielleicht kommen sogar ein paar seltener kommende Mitspieler. :-)
Webgeschreibungen wie immer auf Anfrage und Uebernachtungsmoeglichkeit fuer
externe Interessenten auch wie immer nach Abspreche. ;-)
Achja, das ganze ab 20:00.

Bis dahin,
Zesstra

-----------------------------------------------------------------------------



KA Stammtisch 11.5 (Croft, 10. Mai 2006, 23:38:57):
Zwar etwas kurzfristig aber dennoch: morgen treffen wir uns in der Taverne
Der Grieche (www.taverne-der-grieche.de). Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA Stammtische 18.5 & 25.5 (Croft, 15. Mai 2006, 17:09:04):
Diese und naechste Woche sind ihr im Drachen anzutreffen (www.zumdrachen.de).
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Merlin (Miril, 26. Mai 2006, 01:32:02):
Wie immer spaet, kuendige ich hier mal fuer in ein paar Stunden, also
am 26.05.2006 den allseits beliebten Merlin Stammtisch an. Wir treffen
uns so gegen 20.00 Uhr (hm, wir haben noch keinen Tisch bestellt, vielleicht
dann doch lieber etwas frueher ;).

Miril

-----------------------------------------------------------------------------



KA Stammtisch 1.6 & 8.6 (Croft, 29. Mai 2006, 11:30:00):
Diesen Donnerstag gehts wieder in die Taverne Der Grieche
(www.taverne-der-grieche.de) und die Woche darauf ins Green Corner.
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Merlin (Humni,  2. Jun 2006, 15:57:08):
Huhu,

in wenigen Stunden werden sich die ueblichen Verdaechtigen samt eines baldigen
EMs in Essen im Merlin versammeln. Wird wohl 20 Uhr sein.

Wer kommen mag, soll kommen, es gibt sicher leckere Parzivals und Bier.

Humni

-----------------------------------------------------------------------------



KA Stammtische 15.6 & 22.6 (Croft,  8. Jun 2006, 16:10:04):
Naechste und uebernaechste Woche sind wir im Drachen anzutreffen
(www.zumdrachen.de). Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Merlin (Miril, 14. Jun 2006, 08:56:49):
Am Freitag, den 16.6.06 treffen wir uns wieder im Merlin. Start sollte so
gegen 20 Uhr sein.

Miril

-----------------------------------------------------------------------------



Merlin mal wieder... (Humni, 22. Jun 2006, 21:10:41):
Huhu,

wir treffen uns morgen in Essen im Merlin (mal wieder), 20 Uhr oder so, wie
ueblich wirds bei mir vermutlich ein paar Minuten spaeter...

Wegbeschreibungen und co wie immer gerne auf Anfrage.

Humni

-----------------------------------------------------------------------------



KA Stammtische 29.6 & 6.7 (Croft, 23. Jun 2006, 13:15:15):
Naechste Woche gehts zum Griechen (www.taverne-der-grieche.de) und die Woche
darauf ins Green Corner.  Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



StaTi Berlin 30. Juni, 16:50 Uhr (Gloinson, 29. Jun 2006, 02:05:51):
Ok,
der Wetterbericht sagt wolkig bei 24 Grad, also:

Hiermit rufe ich einen Parkstammtisch aus:

- Freitag, den 30. Juni ab 16:50
- Volkspark Friedrichshain
  - http://www.berlin-friedrichshain.com/volkspark.htm
  - im "Neuen Hain" beim Kletterfelsen treffen
    - Zugang von der Danziger Strasse aus, geradeaus, links kommt der Felsen

Cakey und Claudia bringen einen Kasten Bier mit, wir werden einen Kasten
Zuckerwasser besorgen. Essen sollte jeder selbst mitbringen. Wenn ich Cakey
richtig verstanden habe, bringt er Schleppi und DVBT mit, meiner koennte als
Backup dann wieder zur Verfuegung stehen (Reparatur).

Koemmet zuhauf und bringt nicht die falschen Farben mit :)


-----------------------------------------------------------------------------



Merlin-StaTi 14.07. (Zesstra, 11. Jul 2006, 22:25:48):
Huhu,

wenn mich nicht alles taeuscht, wollen wir uns kommenden Freitag wieder im
Merlin treffen. ;-)
Das waere dann also:
Fr. 14.07.2006,
ab 20:00
Im Merlin in Essen-Kupferdreh.

Wegbeschreibungen natuerlich wie immer auf Anfrage. ;-)

Kommet zuhauf! :-)
Zesstra

-----------------------------------------------------------------------------



KA Stammtische 13.7, 20.7 & 27.7 (Croft, 12. Jul 2006, 13:36:44):
Die naechsten 2 Wochen gehts wieder in den Drachen (www.zumdrachen.de) und
danach dann ins Green Corner.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Merlin-Stati 28.7. (Zesstra, 28. Jul 2006, 00:19:42):
Huhu,

wir haben mal wieder nicht dran gedacht, das rechtzeitig anzukuenden. :-(
Also, wir treffen uns heute:
28.7., im Merlin in Essen-Kupferdreh, ab ca. 20:00  ;-)

Viele Gruesse,
Zesstra

-----------------------------------------------------------------------------



KA Stammtische 10.8, 17.8 & 24.8 (Croft,  8. Aug 2006, 13:15:01):
Diese Woche gehts in den Drachen, naechste Woche zum Griechen und die
Woche darauf ins Green Corner.
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Merlin-Stati 18.8.06 (Zesstra, 14. Aug 2006, 23:02:16):
Huhu,

diesmal wieder halbwegs rechtzeitig. ;-)
Wir treffen uns am naechsten Freitag,
den 18.8.06
im Merlin in Essen-Kupferdreh,
ab 20:00.

Kommet zuhauf!
Zesstra

-----------------------------------------------------------------------------



Essen: Merlin-Stati 01.09. (Zesstra, 29. Aug 2006, 10:18:27):
Huhu,

wir treffen uns jetzt kommenden Freitag, am 1.9. wieder im Merlin in
Essen-Kupferdreh. Wie immer ab 20:00 (wir versuchen auch mal, wieder etwas
puenktlicher zu sein *huestel*).

Zesstra

-----------------------------------------------------------------------------



KA Stammtisch 31.8 (Croft, 29. Aug 2006, 11:25:56):
Am Donnerstag gehts wieder in den Drachen.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stammtische 7.9, 14.9 & 21.9 (Croft,  6. Sep 2006, 10:35:08):
Folgende Reihenfolge wurde willkuerlich bestimmt:
Drache
Grieche
Green Corner
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Essen: Merlin-Stammtisch am 15.09. (Zesstra, 11. Sep 2006, 22:56:39):
Huhu,

ich will mal wieder unseren Stati ankuendigen. ;-)
Also, der naechste ist
am Fr. 15.09.,
ab 20:00
wie immer im Merlin in Essen-Kupferdreh. ;-)

Kommet _alle_! ;-)
Zesstra

-----------------------------------------------------------------------------



Merlin (Nedime, 28. Sep 2006, 00:03:05):
Huhu,

am Freitag, 29.9, puenktlich zu Ferienbeginn, treffen wir uns mal wieder
im schoenen Merlin in Essen Kupferdreh. Beginn ca. 20 Uhr. Diesmal werden
wir das Mud stehenlassen ;) und dafuer lieber Bier trinken oder so.

Kommet zuhauf!

Nedime

-----------------------------------------------------------------------------



KA Stammtische 28.9 & 5.10 (Croft,  4. Okt 2006, 11:59:58):
Letzte Woche und diese Woche waren/sind wir ab 20:00 im Drachen anzutreffen.

Croft

-----------------------------------------------------------------------------



Essen, Merlin-Stammtisch (Zesstra, 10. Okt 2006, 12:13:47):
Huhu,

wir treffen uns wieder im Merlin am kommenden Freitag, 13.10.06, ab 20:00.

Bis dann hoffentlich ;-)
Zesstra

-----------------------------------------------------------------------------



KA Stammtische 12./19./26.10/2.11 (Croft, 10. Okt 2006, 13:15:21):
Die naechsten Karlsruher Stammtische finden an folgenden Orten statt:
12.10 Zum Drachen
19.10 Zum Drachen
26.10 Der Grieche
 2.11 Green Corner
Beginn wie gehabt um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA Stammtische 12./19./26.10/2.11 (Croft, 16. Okt 2006, 12:04:02):
~#! rn=Croft rt=1160478921 rg=treffen.bekanntmachungen
~#! tid=1160478921
Die Buletten haben fuer eine Planaenderung gesorgt:
19.10 Zum Drachen
26.10 Green Corner
 2.11 Der Grieche
Beginn wie gehabt um 20:00

Croft

-----------------------------------------------------------------------------



Treffen am 20.10. in Essen (Zesstra, 17. Okt 2006, 19:24:46):
Huhu,

auch wenn leider 2 absagen mussten, wollen wir uns anlasslich der Spielemesse
in Essen am 20.10. abends im Merlin treffen. (Wegbeschreibung auf Anfrage.)
Ab 20:00 gehts los. (Wir versuchens zumindest. *g*)

Also, wenn ihr zu der Zeit die Messe besucht, kommt doch einfach mal vorbei.
;-)

Viele Gruesse
Zesstra

-----------------------------------------------------------------------------



Merlin (Zesstra, 26. Okt 2006, 09:17:59):
Huhu,

irgendwie hab ichs mal wieder vergessen, die Bekanntmachung zeitig zu
schreiben... *seufz*
Morgen ists wieder soweit, also
Fr, 27.10. ab 20:00
im Merlin.

Achja, einen gelegentlichen Gast duerfen wir auch wieder begruessen. :-)

Bis dann,
Zesstra

-----------------------------------------------------------------------------



Stati im Merlin, 10.11. (Zesstra,  8. Nov 2006, 19:53:15):
Huhu,

eigentlich wollte ich das schon am Montag Abend schreiben, aber ich habs mal
wieder vergessen.
Unser naechstes Treffen im Merlin in Essen-Kupferdreh findet am kommenden
Freitag (10.11.2006) statt, wie immer ab 20:00.

Bis dahin,
Zesstra

-----------------------------------------------------------------------------



KA Stammtische 9.11/16.11 (Croft,  8. Nov 2006, 20:07:03):
Die naechsten Lokalitaeten:
 9.11 Zum Drachen
16.11 Zum Drachen
Danach muessen wir noch auswuerfeln wohin es geht.
Beginn wie gehabt.

Croft

-----------------------------------------------------------------------------



Nochmal Essen - Merlin, 17.11. (Humni, 17. Nov 2006, 15:06:07):
Huhu,

da das Merlin den Besitzer wechselt und wir nicht wissen, wie lange wir noch
WLan und Parzivals bekommen, ist heute abend spontan Parzivalfuttern angesagt.
Wie immer so grob ab 20 Uhr, im Merlin, in Essen, im Ruhrgebiet, in
Nordrhein-Westfalen, in Deutschland, in Europa, auf der Erde, im Sonnensystem,
Galaxis Milchstrasse, im Standarduniversum (Parresum).

Humni

-----------------------------------------------------------------------------



Re: Nochmal Essen - Merlin, 17.11. (Cirdan, 20. Nov 2006, 20:39:16):
~#! rn=Humni rt=1163772367 rg=treffen.bekanntmachungen
~#! tid=1163772367
War nicht das Parresum die andere Seite und das Arresum diese hier? Oder doch
umgekehrt?
Oder wie?
Oder was?
Oder was?
Gruebelnd,
Cirdan

-----------------------------------------------------------------------------



KA Stammtische 23.11/30.11/7.12 (Croft, 21. Nov 2006, 11:50:45):
Die naechsten 3 Termine:
23.11 Green Corner
30.11 Der Grieche
 7.12 Zum Drachen
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Essen Stammtisch 24.11.06 (Zesstra, 21. Nov 2006, 11:56:08):
Huhu,

unser naechster Stati ist jetzt am Freitag,
24.11., ab 20:00 im Merlin.

Ab jetzt hat das Merlin eine neue Eigentuemerin, wir sind gespannt, wieviel
sich dort aendern. Wlan und zumindest Teile der Belegschaft inkl. Koch bleiben
uns aber wohl erhalten. ;-)

Zesstra

-----------------------------------------------------------------------------



Stati im Merlin, Essen, 8.12. (Zesstra, 30. Nov 2006, 19:11:06):
Huhu,

wir wollen uns am Freitag, 8.12. das naechste Mal im Merlin zum Stati treffen.
In der Annahme, dass es das Merlin dann noch gibt (und dass es Neuigkeiten
gibt). ;-)
Wie immer, so grob ab 20:00, Ende offen.

Kommet zuhauf,
Zesstra

-----------------------------------------------------------------------------



Weihnachtsmarkt Aachen, 16.12. (Zesstra, 30. Nov 2006, 19:30:57):
Hiho,

am Samstag, 16.12. wollen wir (Ruhrgebietler + Aachener) uns in Aachen zu
einem gemuetlichen adventlichen Rundgang ueber den Aachener Weihnachtsmarkt
treffen. Mit Gluehwein & Co natuerlich fuer die, die moegen. *g*
Ausklang wird dann wohl am spaeteren Abend in einer Aachener Kneipe sein. ;-)
Treffen um 17:00 in Aachen hatten wir mal ueberlegt. Treffpunkt haben wir noch
nicht fest abgesprochen, wird dann hier spaeter nachgereicht.

Auch hier: Kommet zuhauf!
Zesstra

-----------------------------------------------------------------------------



Re: KA Stammtische 23.11/30.11/7.12 (Croft,  5. Dez 2006, 23:54:58):
~#! rn=Croft rt=1164106245 rg=treffen.bekanntmachungen
~#! tid=1164106245
Da der Drache am Donnerstag von einer geschlossenen Gesellschaft belagert
wird,
werden wir uns einen anderen Ort suchen muessen.
*macht eine boese Geste in Richtung Dawnrazor*

Croft

-----------------------------------------------------------------------------



Re: Re: KA Stammtische 23.11/30.11/7.12 (Croft,  7. Dez 2006, 00:33:26):
~#! rn=Croft rt=1165359298 rg=treffen.bekanntmachungen
~#! tid=1164106245
Der Vogelbraeu wurde auserkoren: http://www.vogelbraeu.de/
Beginn wie gehabt ab 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch Karlsruhe am Do, 14.12. (Gingko, 13. Dez 2006, 12:15:47):
Der Stammtisch in Karlsruhe findet am 14.12 in der Taverne "Der Grieche"
stattKaiserstr. 16. Wie gewohnt 20h. (http://www.taverne-der-grieche.de/)
cu/gingko

-----------------------------------------------------------------------------



AACHEN! Jawohl (Humni, 13. Dez 2006, 21:17:54):
Huhu,

lang, lang ists her, aber wir haben beschlossen, mal wieder eine Unternehmung
in Aachen zu starten.

Und zwar wollen wir uns auf dem Weihnachtsmarkt treffen. Um 15 Uhr. Jawohl.

Da Aachen nicht ganz so klein ist, wuerde ich den McDonalds auf dem Markt
(davor, nicht unbedingt darin) als Treffpunkt vorschlagen.

Wegbeschreibung folgt in der entsprechenden Rubrik.

Nach dem obligatorischen Gluehwein ist sicherlich noch Platz in den Maegen
fuer den Besuch von diversesten Kneipen in AC-City. Das wird dann spontan
entschieden.

Humni
Ach ja, Das ganze ist am Samstag, den 16.12. Habs fast vergessen.

-----------------------------------------------------------------------------



KA Sonder-Stammtisch 16.12 (Croft, 15. Dez 2006, 14:56:03):
Da wir hohen Besuch aus dem Norden haben (oder wars Besuch aus dem hohen
Norden?) gibts am Samstag einen Sonder-Stammtisch.  Und zwar im 
Drachen ab 20:00.

Croft

-----------------------------------------------------------------------------



KA Stammtische 21.12/28.12 (Croft, 19. Dez 2006, 11:45:24):
Die letzten 2 Termine dieses Jahr:
21.12 Zum Drachen
28.12 Zum Drachen
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Essen Stati 22.12. (Zesstra, 19. Dez 2006, 11:51:37):
Auch fuer Essen kuendige ich den letzten Termin dieses Jahres im Merlin an:
22.12., ab 20:00.

Bis dann :-)
Zesstra
P.S. Nein, seid beruhigt: es ist keine Weihnachtsfeier.

-----------------------------------------------------------------------------



KA Stammtisch 4.1 (Croft,  2. Jan 2007, 17:18:26):
Der erste Stammtisch des noch jungen Jahres findet im Drachen statt.
Beginn wie gehabt um 20:00.

Croft

-----------------------------------------------------------------------------



Essen Stati 6.1.2007 (Zesstra,  4. Jan 2007, 15:59:45):
Unser erstes Treffen wird ausnahmsweise am naechsten _Samstag_ stattfinden, da
Miril und Humni aus div. Gruenden Freitag Abend nicht koennen.
Also: Sa, 6.1.07, ab 20:00 im Merlin in Essen-Kupferdreh. ;-)

Zesstra

-----------------------------------------------------------------------------



KA Stammtische 11.1/18.1/25.1/1.2 (Croft, 12. Jan 2007, 21:44:48):
Ein paar Stammtischtermine:
11.1 Green Corner
18.1 Taverne Der Grieche
25.1 Zum Drachen
 1.2 Green Corner
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Merlin-Stati 19.01.2007 (Zesstra, 18. Jan 2007, 00:16:00):
Huhu,

ich habs mal wieder vergessen und die anderen haben auch nicht dran gedacht,
aber: Am Freitag, 19.1.2007, ist doch wie gewoehnlich unser Stammtisch im
Merlin. Wie immer ab 20:00. ;-)

Viele Gruesse,
Zesstra

-----------------------------------------------------------------------------



Merlin-Stati 02.02.07 (Krstfrs,  1. Feb 2007, 21:37:59):
Huhu,

alle habens vergessen oder leiden unter Stress, deswegen muss der arme Krstfrs
jetzt bekanntgeben, dass morgen, am Freitag, 02.02.07, wie immer Stammtisch im
Merlin ist. Beginn 20:00 und kommet zuhauf!

Gruesse,
Krstfrs

-----------------------------------------------------------------------------



Re: Merlin-Stati 02.02.07 (Gloinson,  1. Feb 2007, 21:40:51):
~#! rn=Krstfrs rt=1170362279 rg=treffen.bekanntmachungen
~#! tid=1170362279
Aber morgen ist schon die letzte Party in der Melle, der notorischen
inoffiziellen Berliner Stammtischkneipe.


-----------------------------------------------------------------------------



KA Stammtische 8.2/15.2/22.2/1.3 (Croft,  2. Feb 2007, 11:37:08):
Und die naechsten Orte:
 8.2 Taverne Der Grieche
15.2 Zum Drachen
22.2 Green Corner
 1.3 Zum Drachen
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Merlin-Stati 16.2.2007 (Zesstra, 12. Feb 2007, 17:38:22):
Huhu,

trotz Karneval findet unser naechster Stati im Merlin naechsten Freitag statt.
;-)
Fr, 16.02.2007, ab 20:00 im Merlin, Essen-Kupferdreh.

Solltet ihr (die ueblichen Kandidaten *g*) allerdings doch mehrheitlich lieber
was anderes an diesem Freitag machen wollen, meldet euch bitte zwecks
Verschiebung. ;-)

Zesstra

-----------------------------------------------------------------------------



Merlin-Stati: 2.3. (Zesstra, 27. Feb 2007, 10:23:22):
Huhu,

der erste Stati im Maerz im Merlin findet naechsten Freitag, also am 2. Maerz,
ab 20:00 statt.

Kommet zuhauf,
Zesstra

-----------------------------------------------------------------------------



Karlsruhe-Stati 15.03.-05.04. (Tassram,  9. Mar 2007, 18:06:33):
Mal die naechsten Statiorte hier aufschreiben, bevor ich sie selbst wieder
vergesse ;)
15.03. La Cage Blumenstrasse 25 im Obergeschoss im Restaurant (www.lacage.de)
22.03. Zum Drachen (www.zumdrachen.de)
29.03. Zum Drachen (www.zumdrachen.de)
05.04. Grieche (www.taverne-der-grieche.de)

-----------------------------------------------------------------------------



Berlin, 25.03. (Maharet,  9. Mar 2007, 18:08:56):
Hallo Berliner,
wir werden am 25. Maerz in Berlin sein, und zwar ab 10, halb 11 im Restaurant
Xion (Pappelallee Ecke Stargarder) zum Brunchen.
Sagt bescheid, zu wievielt Ihr kommt, damit ich einen entsprechend grossen
Tisch reservieren lassen kann.
Bis denne,
Maha

-----------------------------------------------------------------------------



Ruhrgebiets-Stati: 16.3. in Bochum (Zesstra, 13. Mar 2007, 20:19:00):
Huhu,

wir haben uns fuer kommenenden Freitag Abend fuer das 'Le Clochard'
entschieden.
Also, unser naechstes Treffen ist
Freitag, 16.03.07, ab 20:00
im Clochard in Bochum-Querenburg (leider _nicht_ mehr im Merlin!)

Adresse ist:
Le Clochard
Buscheyplatz 2
44801 Bochum

Wer eine Wegbeschreibung braucht, meldet sich am besten bei mir oder Miril.
;-) (oder fragt nen Routenplaner seines/ihres Vertrauens)

Ach noch was: Im Gegensatz zum Merlin moechte ich da eine ungefaehre
Schaetzung abgeben, wieviele wir sind. Ich waere euch dankbar, wenn ihr mir
kurz eine Mail oder tm schickt, wer kommen mag.

Kommet zuhauf!
Zesstra

-----------------------------------------------------------------------------



KA goes Flammkuchen: 12. Mai (Tassram, 22. Mar 2007, 12:10:15):
Es wird mal wieder Zeit fuer den Karlsruher Stati & Freunde ins Elsass
einzufallen, um einige leckere Flammkuchen dort zu essen.
Und einen Termin fuer dieses Ereignis gibts auch schon:

Samstag 12. Mai 2007

Es wird wohl wieder in die "Ecurie" nach Neuhaeusel gehen und das uebliche
gemeinsame Hinfahren ab Waldparkplatz geben, aber da es eh sinnvoll ist
sich vorher anzumelden, damit wir passend reservieren koennen und wissen
wann wir 'vollzaehlig' sind zum Losfahren, muss ich ja hier keine
Details schreiben ;)

Gruss Tassram

-----------------------------------------------------------------------------



Ruhrgebiets-Stati 30.03.2007 (Zesstra, 25. Mar 2007, 17:00:16):
Huhu,

naechsten Freitag wirds nochmal das Clochard in Bochum als Stati-Kneipe.
Wie immer treffen wir uns ab 20:00 dort zum Stati.
Wenn jemand es abschaetzen kann, ob er/sie kommen mach, waer ich ueber eine
kurze Nachricht dankbar, dann kann ich was in passender Groesse reservieren.
;-)

Viele Gruesse,
Zesstra

P.S. Wenn jemand kommen mag, der ne Wegbeschreibung braucht -> per Mail ;-)
Telefonnr. gibts auch per Mail und falls jemand dieses oder ein anderes Mal in
Bochum bei mir uebernachten mag, am besten per TM oder Mail melden. (Wollte
ich mal ganz grundsaetzlich fuer die Statis hier anmerken.)

-----------------------------------------------------------------------------



KA Stati 5./12./19./26.4 (Croft,  3. Apr 2007, 18:10:26):
Fuer diesen Donnerstag gibts auf Wunsch eine kleine Programmaenderung:
05.04. Zum Drachen (www.zumdrachen.de)
12.04. Grieche (www.taverne-der-grieche.de)
19.04. Green Corner (Gruenwettersbach, Am Wetterbach 90)
26.04. Zum Drachen (www.zumdrachen.de)

Croft

-----------------------------------------------------------------------------



Ruhrgebiets-Stati auf Abwegen: 4 Winde, 20.4. (Humni, 16. Apr 2007, 21:52:24):
Huhu,

da Amber (und Gefaehrten) am Freitag im 4 Winde in Bochum spielt werden wir
uns wohl da versammeln, da wir ihr das gesagt haben.... lohnt sich sicherlich,
die Frau kann Musik machen.

Also, Freitag abend im Vier Winde, ich tippe wie immer gegen 20 Uhr oder so...

Kommet alle! Oder zumindest zuhauf!

Humni
PS: Wer ist Amber? Hier: http://www.rabenflug.com

-----------------------------------------------------------------------------



Re: Ruhrgebiets-Stati auf Abwegen: 4 Winde, 20.4. (Gralkor, 18. Apr 2007, 18:02:19):
~#! rn=Humni rt=1176753144 rg=treffen.bekanntmachungen
~#! tid=1176753144
kann ich sehr empfehlen (auch wenn der Anmarsch sehr weit ist)
G., besitzt beide Alben (handsigniert)

-----------------------------------------------------------------------------



Re: Re: Ruhrgebiets-Stati auf Abwegen: 4 Winde, 20.4. (Humni, 20. Apr 2007, 00:30:36):
~#! rn=Gralkor rt=1176912139 rg=treffen.bekanntmachungen
~#! tid=1176753144
So, kleines Update: Einlass fuer das Konzert ist ab 19 Uhr, Eintritt 5 Euro,
Beginn 20 Uhr. Ich hoffe, man findet sich da irgendwie, ich fuerchte, einen
Tisch da zu reservieren duerfte schwierig werden (hab ich gar nicht erst
versucht, bei Konzerten machen die das ja ueblichweise einfach voll).

Humni

-----------------------------------------------------------------------------



Bochum, 4.5., 4 Winde (Humni,  1. Mai 2007, 21:16:55):
Huhu,

wir werden mal wieder einen Ruhrgebiets-Stammtisch machen, im 4 Winde in
Bochum. Diesmal Freitag abend, wohl so gegen 20 Uhr, wie immer, am 4.5. Ihr
muesst alle kommen. Verstanden? Alle. Sonst fress ich Euch.

Humni

-----------------------------------------------------------------------------



KA Stati 3.5 (Croft,  3. Mai 2007, 15:42:31):
Heute sind wir ab 20:00 im Drachen und bestimmen die naechsten Lokalitaeten.

Croft

-----------------------------------------------------------------------------



Frankfurt-Donnerstag 10. Mai (Mesirii,  3. Mai 2007, 16:12:27):
Hat wer Lust am Donnerstag Abend mit Xutelius und mir einen Stati in FFM
zu veranstalten?
Wir kennen uns da nicht aus, vertrauen aber erstmal auf Ronda :)

Vielleicht hat ja der ein oder andere Lust

Mesi

-----------------------------------------------------------------------------



Re: Frankfurt-Donnerstag 10. Mai (Ark,  3. Mai 2007, 16:46:59):
~#! rn=Mesirii rt=1178201547 rg=treffen.bekanntmachungen
~#! tid=1178201547
Klar, ich bin da eh feddich abends :-)
Ich erwarte aber, alles ausgegeben zu bekommen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Frankfurt-Donnerstag 10. Mai (Gwen,  7. Mai 2007, 16:31:21):
~#! rn=Ark rt=1178203619 rg=treffen.bekanntmachungen
~#! tid=1178201547
Ich schlage folgendes vor:
http://home.new-in-town.de/
Das ist sehr nah am Bahnhof und zumindest mittags sehr nett.
Wieviele Leute kommen dann definitiv?
(Ich sollte am Besten morgen reservieren.)
Ich hab mal notiert:
Ark, Gwen, Mesirii, Ronda, Xutelius - sonst noch wer?
Und: ab wann genau?

Ich kann anbieten Euch vom Bahnhof aus hinzubringen.
(zu Fuss).

-----------------------------------------------------------------------------



Re^3: Frankfurt-Donnerstag 10. Mai (Ark,  7. Mai 2007, 16:45:26):
~#! rn=Gwen rt=1178548281 rg=treffen.bekanntmachungen
~#! tid=1178201547
Fruehestens 7 ... damit haben wir auch einen guten Anfangspunkt, nein? ;)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: Frankfurt-Donnerstag 10. Mai (Gwen,  7. Mai 2007, 21:42:06):
~#! rn=Ark rt=1178549126 rg=treffen.bekanntmachungen
~#! tid=1178201547
Aktueller Stand:
Uhrzeit 19:30 Uhr
Zugesagt haben: Ark, Gwen, Mesirii, Xutelius, Zephyr
Angesagt ist: Ronda (*Kalauer*)
Gwen.

-----------------------------------------------------------------------------



KA Statis 10./17./24./31.5 (Croft,  9. Mai 2007, 00:35:16):
10.5 Green Corner
17.5 Zum Drachen
24.5 Der Grieche
31.5 Zum Drachen
oder so.  Startzeit wie gehabt.

Croft

-----------------------------------------------------------------------------



Kurzfristig: Bochum, Grunewald, 20 Uhr, heute, 19.5. (Humni, 19. Mai 2007, 12:56:47):
Huhu,

ja, ist sehr kurzfristig. Wir treffen uns heute abend im Grunewald in Bochum.
Das 4 Winde hat naemlich geschlossene Gesellschaft.

Wo ist das Grunewald? Ich hab keine Ahnung. Ich hab da nur angerufen und einen
Tisch bestellt. Ich weiss nicht, was das ist, wo das ist, und wie das ist. Ich
hab einfach Zahlen eingetippt in ein Telefon und einen Tisch bestellt. Oh Jof.
Weia. Sowas.

Naja, egal. Jetzt wisst ihrs.

Humni
PS: Das hab ich gefunden:

Grunewald
MarkstraGrunewalde 139
44799 Bochum
(bloede Umlaute, das muss Markstrasse heissen, wie das alte Geld, die Strasse
wird bald in Eurostrasse umbenannt. Haha.)

-----------------------------------------------------------------------------



Re: Kurzfristig: Bochum, Grunewald, 20 Uhr, heute, 19.5. (Masul, 19. Mai 2007, 15:24:30):
~#! rn=Humni rt=1179572207 rg=treffen.bekanntmachungen
~#! tid=1179572207
Keine Ahnung, wo das Grunewald ist. War noch nie da. ;-)
In der Naehe sollen Stadtfuehrungen durchgefuehrt werden; es stehen dort
naemlich einige Laternen am Strassenrand. Achso. Ich wuesste jetzt gar nicht
wo. War noch nie da.
Masul
-kann sich zumindest an nichts mehr erinnern. Oder .... da war doch was...-

-----------------------------------------------------------------------------



Re: Re: Kurzfristig: Bochum, Grunewald, 20 Uhr, heute, 19.5. (Gwen, 19. Mai 2007, 15:27:40):
~#! rn=Masul rt=1179581070 rg=treffen.bekanntmachungen
~#! tid=1179572207
Wo doch jeder weiss, dass der Grunewald bei Berlin ist ;)
Gwen.

-----------------------------------------------------------------------------



Stammtisch in Kiel (Janne, 20. Mai 2007, 20:00:20):
Der Sommer naehert sich mit grossen Schritten - und damit auch einem der
Highlights im schoensten Bundesland der Welt *g*: der Kieler Woche. Und das
bietet sich doch an als Termin fuer eine Neuauflage des letzten tollen und
superlustigen Kiel-Stammtisches!
Somit hier die grobe Planung am 23.6.: ab 10 Uhr Grillen am Strand mit
perfektem Blick auf die Windjammerparade, danach vielleicht (je nach
Beteiligung und Interesse) einen Schlag segeln, um dann abends von einer
Konzertbuehne zum naechsten zu pilgern.
Uebernachtungsmoeglichkeit besteht in begrenztem Rahmen. Lollis Vorschlag
entsprechend bitte ich bei Interesse um Mitteilung einer Email-Adresse, da die
weitere Planung dann mittels Mailingliste erfolgen soll.

Und damit ganz traditionell das Kieler-Woche-Motto: LEINEN LOS!

-----------------------------------------------------------------------------



Re^3: Kurzfristig: Bochum, Grunewald, 20 Uhr, heute, 19.5. (Maharet, 20. Mai 2007, 20:27:23):
~#! rn=Gwen rt=1179581260 rg=treffen.bekanntmachungen
~#! tid=1179572207
in, nicht bei

-----------------------------------------------------------------------------



Bochum, 1.6., 4 Winde (Zesstra, 29. Mai 2007, 20:56:32):
Huhu,

wir haben gerade mal geklaert, wo unser naechstes Treffen sein soll und die
Wahl fiel diesmal wieder aufs Vier-Winde. Also:
Freitag, 1. Juni,
ab 20:00 Uhr,
Zu den Vier-Winden, in Bochum

Bis dann und kommet zuhauf, ;-)

Zesstra

-----------------------------------------------------------------------------



KA Statis 7./14./21.6 (Croft,  5. Jun 2007, 15:44:37):
 7.6 Zum Drachen
14.6 Green Corner
21.6 Der Grieche

Croft

-----------------------------------------------------------------------------



KA goes Seemuschel (24.6) (Croft,  6. Jun 2007, 12:36:50):
Es ist mal wieder Zeit Panos in seiner Seemuschel am Baggersee
Fahrteich heimzusuchen.  Der Baggersee befindet sich von Buechenau aus
in Richtung Neuthard auf der Kreisstrasse K 3529 fahrend, kurz vor
Neuthard auf der linken Seite.  Auf http://tinyurl.com/32h6ly kann man
sich die Seemuschel aus der Luftperspektive anschauen.
Geplant ist es ab 12:30 dort zu sein.  Um ggf reservieren zu koennen
bzw Fahrtgemeinschaften zu koordinieren, bitte bei mir kurz melden,
damit das organisiert werden kann.

Croft

-----------------------------------------------------------------------------



Re: KA goes Seemuschel (24.6) (Gwen,  6. Jun 2007, 17:25:45):
~#! rn=Croft rt=1181126210 rg=treffen.bekanntmachungen
~#! tid=1181126210
Kann man da auch baden?
Gwen.

-----------------------------------------------------------------------------



Schon wieder: Frankfurt. (Ronda, 10. Jun 2007, 15:01:46):
Hallo,

die Frankfurter Mudder (und die aus dem Umkreis, die zaehlen wir einfach mal
dazu) werden grade uebermuetig und rufen schon wieder ein Treffen aus: Diesen
Montag (11.6.) ab ca. 19 Uhr gehts los - wieder im New in Town direkt beim
Bahnhof.

Wer noch eine Wegbeschreibung braucht: bitte einfach bei Gwen oder mir melden.

Tschuess,

Ronda

-----------------------------------------------------------------------------



Bochum, 22.5., Vier Winde (Humni, 18. Jun 2007, 21:39:24):
Huhu,

nach allseitiger Beratung werden wir uns am Freitag im Vier Winde treffen.
Kommet zuhauf!

Drache (schwarz, boese)
PS: Wie immer 20 Uhr oder so.

-----------------------------------------------------------------------------



Nochmal Bochum! (Humni, 26. Jun 2007, 00:25:42):
Juchhu!

Ja, das gibts viel zu selten.

Aba jetz!

Zweimal hintereinander im Wochentakt Stammtisch in Bochum. Wir kommen aus dem
tischen und stammen gar nicht mehr raus.

Diesmal wollen wir nicht schon wieder das Vier Winde mit unserer Anwesenheit
behelligen. Stattdessen nehmen wir das hier:

Mandragora
Adenauerplatz 1
Bochum

Wegbeschreibung? Hab ich keine, war noch nicht da, und wenn, weiss ichs nicht
mehr. Mailt Miril an. Oder jemanden, der sich auskennt. Oder Map24. Oder
Zesstra. Oder ihr fahrt nach Bochum und fragt erst nach "Bermudadreieck", dann
nach "Mandragora" und dann nach ... weiss nicht, Dunst wird wohl den Tisch
reservieren.

Ach ja, Freitag, 29.6., 20 Uhr. Wann auch sonst.

Humni

-----------------------------------------------------------------------------



KA Statis 28.6/5.7 (Croft, 27. Jun 2007, 10:48:25):
28.6 Il Caminetto (Kronenstrasse 5)
 5.7 Zum Drachen (www.zumdrachen.de)
Treffen wie immer um 20:00

Croft

-----------------------------------------------------------------------------



4.8. bei Luebeck: kein Stammtisch, aber... (Perdita, 28. Jun 2007, 17:54:46):
Wer am 4.8. zufaellig oder absichtlich in der Luebecker Gegend weilt, sei
herzlich eingeladen, zu meiner Geburtstagsparty dazuzustossen.
Einige von euch kennen das ja schon: Gartenparty, Beginn irgendwann
nachmittags, mit Bade- und Kubb-Moeglichkeit, nachmittags Kaffee/Kuchen,
abends Jeder-bringt-was-mit-Buffet mit Grillen und Lagerfeuer bis in die Nacht
hinein.
Bei Interesse Mudmail an mich, dann gibt's Details.
Perdita - macht dieses Jahr mal Rundumschlag per MPA (sonst vergess ich bloss
noch wieder jemanden...)

-----------------------------------------------------------------------------



Stati am 13.7. in Bochum (Zesstra, 11. Jul 2007, 21:08:08):
Huhu,

mal wieder etwas spaeter kommt die Stati-Ankuendung fuer kommenden Freitag.
;-)
Humni hat in einem schwarzdrachischen Ritual als Kneipe das Mandragora zu
unserem Treffpunkt bestimmt.
Das Mandragora ist etwas eigen mit Reservierungen, es kann sein, dass das
nicht klappt. In dem Fall muessten wir sehen, dass wir zeitig da sind und uns
einen Tisch mit Schwertern und Klingen erobern. ;-) (ok, die Anwesenheit
einiger Leute reicht bestimmt auch. *g*)

Ok... Also, zusammenfassend:
Stati am 13.7.2007, ab 20:00,
im Mandragora in Bochum.

Achja, Wegbeschreibungen auf Anfrage von mir. ;-)

Viele Gruesse,

Zesstra

-----------------------------------------------------------------------------



KA Statis 12./19./26.7 (Croft, 12. Jul 2007, 01:43:56):
12.7 Green Corner
19.7 Zum Drachen
26.7 Hattingen (Auswaertsstati)

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum (Vincent, 25. Jul 2007, 12:27:15):
Wie mir Croft gerade per Telefon mitgeteilt hat, findet am Donnerstag,
dem 26.7.2007 ein MG-Stammtisch in Bochum statt,
und zwar im Mandragora (Adenauerplatz 1, Bochum).

   Vincent

-----------------------------------------------------------------------------



Re: Stammtisch in Bochum (Vincent, 25. Jul 2007, 12:45:26):
~#! rn=Vincent rt=1185359235 rg=treffen.bekanntmachungen
~#! tid=1185359235
Bei dem von Croft ueber mich angekuendigten Stammtisch in Bochum handelt
es sich uebrigens um den Hattinger Stammtisch. Dies zur Info, damit
das mal klar sein wuerde. ;)

   Vincent

-----------------------------------------------------------------------------



KA-Statis 2./9./16./23.8 (Croft, 29. Jul 2007, 20:37:09):
 2.8 Zum Drachen (www.zumdrachen.de)
 9.8 Der Grieche (www.taverne-der-grieche.de)
16.8 Il Caminetto (Kronenstrasse 5)
23.8 Green Corner
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: Re: Stammtisch in Bochum (Maharet, 30. Jul 2007, 11:07:30):
~#! rn=Vincent rt=1185360326 rg=treffen.bekanntmachungen
~#! tid=1185359235
Falsch, es war ein Karlsruher Stammtisch mit vielen Gaesten.

-----------------------------------------------------------------------------



Fruehstuecks-Stati in Bochum, 5.8.07 (Zesstra,  1. Aug 2007, 13:52:02):
Huhu,

ich hab wieder eine Stati-Ankuendung, allerdings diesmal etwas abweichend. ;-)
Wir wollen mal wieder gemeinsam fruehstuecken. Zu diesem Zweck treffen wir uns
am Sonntag, 5.8.2007,
ab 12:00
im Mandragora in Bermudadreieck in Bochum (Adenauerplatz 1)

Wegbeschreibungen wie immer auf Anfrage.
BTW: Es gibt dort kostenloses WLAN, allerdings ist eine Registrierung bei TMR
notwendig. Die Zugangskarten sind allerdings sogar im Mandragora erhaeltlich.
(http://www.kabelab.de/)

Achja: Wenn ihr sicher wisst, dass ihr kommt (oder auch nicht kommt und sonst
normalerweise beim Stati seid), schickt mir doch ne kurze Mitteilung. ;-)

Zesstra

-----------------------------------------------------------------------------



Mandragora-Fruehstueck, 19.8.07 (Zesstra, 15. Aug 2007, 13:50:00):
Huhu,

habs ganz vergessen, aber wir hatten letztes Mal ueberlegt, das
Fruehstueck/Brunch im Mandragora einfach nochmal zu wiederholen.
Der naechste Termin ist dann:
am Sonntag, 19.8.2007,
ab 12:00
im Mandragora in Bermudadreieck in Bochum (Adenauerplatz 1)

Wegbeschreibungen wie immer auf Anfrage.
Letztes mal gab es dort Netzzugang ueber ein offenes WLAN einer der Kneipen in
der Nachbarschaft. ;-)

Achja: Wenn ihr sicher wisst, dass ihr kommt (oder auch nicht kommt und sonst
normalerweise beim Stati seid), schickt mir doch ne kurze Mitteilung. ;-)

Zesstra

-----------------------------------------------------------------------------



Frankfurt, Hemingway-Lounge (Ark, 19. Aug 2007, 23:07:48):
http://www.hemingway-lounge.de/index.php?site=frankfurt&PHPSESSID=0b3dc43228dc
8a265f79458ddfbce846

Mittwoch, 19:00 Uhr, mit schoenen, bekannten und beruehmten Gaesten ... na ok,
ich komme auch :-)

Cocktails, Essen aus 4 Kontinenten, Ausblicke, Einblicke, Ambiente,
Sensationen, Mutationen, Ambitionen. Kommet zuhauf. Ketten aus
Parageienfedern, Vollstrecker und rote Drachenschuppen bitte draussenlassen,
dafuer das Ticket vom Parkhaus nebenan (jaja!) mitnehmen, kostet als Gast
einen Euro.

Wer nicht kommt, ist ein knodderiger Werwolf und gehoert in eine Hundehuette.
So. Wenn das mal keine Werbung ist. Oder auch nicht keine Werbung. Hurra.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Spontanstammtisch BONN (Liara, 21. Aug 2007, 16:30:30):
Hallo liebe Leute,

HEUTE Abend findet ein Treffen in BONN statt.

Wir sind um 19 Uhr am Cafe Bistro PENDEL in der Innenstadt.
Adresse: Vivatsgasse 2a, 53111 Bonn

Die Google-Maps-Anzeige fuer das Pendel stimmt nicht (Adresse falsch)!
Das Pendel befindet sich in der Naehe des alten Stadttores (Sterntor); der
Eingang ist in der kleinen Passage zwischen Dreieck und Vivatsgasse. Falls die
Aussengastronomie aufgebaut ist, faellt man ohnehin von selber rein. ;)

Bisher kommen Choclat und ich, unser special guest fuer heute Abend ist Blivi.

Da wir nicht wissen, ob wir im Pendel einen Platz bekommen, befindet sich eine
Handynummer fuer Ruecksprache in Liaras Projekt. Waere auch nett, wenn ihr 
euch da meldet, falls wir uns im Mud verpasst haben, damit wir wissen, auf wen
wir warten muessen.

ZZL

-----------------------------------------------------------------------------



Sonderstati FFM (Mesirii, 22. Aug 2007, 00:17:15):
aufgrund eines Zwischenstopps in FFM wuerden wir uns gern am Montag, 27.08. ab
so ca. 18:30 im Home-In-Town treffen. Wir wuerden die Wartezeit bis zur
Weiterreise gern mit ein paar Muddern verbringen.
Wenn ihr also Lust habt, kommt vorbei.
Hmm achso anmelden da waere sicher auch nicht schlecht, wenn mehr als wir 4 
kommen.

Mesi

-----------------------------------------------------------------------------



KA Statis 30.8/6.9/13.9/20.9/27.9/4.10/11.10 (Croft, 24. Aug 2007, 12:43:34):
Die naechsten Orte:
30. 8 Zum Drachen (www.zumdrachen.de)
 6. 9 Zum Drachen (www.zumdrachen.de)
13. 9 La Cage (www.lacage.de)
20. 9 Green Corner
27. 9 Der Grieche (www.taverne-der-grieche.de)
 4.10 Zum Drachen (www.zumdrachen.de)
11.10 Il Caminetto (Kronenstrasse 5)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati in Bochum, 02.09.2007 (Zesstra, 26. Aug 2007, 16:42:45):
Huhu,

Unser naechster Stati-Termin ist:
am Sonntag, 02.9.2007,
ab 12:00
im Mandragora in Bermudadreieck in Bochum (Adenauerplatz 1)

Wegbeschreibungen wie immer auf Anfrage.
Netzzugang ueber ein offenes WLAN einer der Kneipen in
der Nachbarschaft gibt sporadisch. ;-) Fuer zuverlaessigen Zugang braucht man
eine (kostenlose) Zugangskarte von http://www.kabelab.de/


Zesstra

-----------------------------------------------------------------------------



Stati Frankfurt/Main (Ark, 19. Sep 2007, 11:12:05):
Fuer die Frankfurter: Freitag, 28.09., bestuende da Interesse an einem kleinen
Stati? Ort noch offen, richtet sich nach Zulauf.
Zeit so ab 18:30 Uhr.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Stati Frankfurt/Main (Del, 19. Sep 2007, 11:14:20):
~#! rn=Ark rt=1190193125 rg=treffen.bekanntmachungen
~#! tid=1190193125
Aber sicher. :-) Ich persoenlich wuerde ja fuer Darmstadt plaedieren, aber da
steh ich wahrscheinlich alleine da. ;-)
Die NuDel ist dabei

-----------------------------------------------------------------------------



KA goes Flammkuchen, 12.10 (Croft, 21. Sep 2007, 13:09:40):
Bevor das Jahr sich dem Ende zuneigt, wollen wir Karlsruher nochmal ins
Elsass zum Flammkuchenessen fahren.  Da sich ueberraschenderweise die
meisten Samstage bis in die Weihnachtszeit schon verplant haben, faellt
der Termin auf einen Freitag und zwar den 12. Oktober.

Das Lokal wird wahrscheinlich wieder die Auberge Ecurie du Rhin in
Neuhaeusel werden (solang diese Flammkuchenschmiede an dem Tag noch
offen und genug Platz hat).  Um einen Ueberblick ueber die
Personenanzahl zu bekommen und ggf Mitfahrgelegenheiten zu
organisieren und passend zu reservieren, bitte rechtzeitig bei mir
melden.

Treffpunkt wird wieder der Uniparkplatz am Fasanengarten um 19:00
sein, so dass wir um 20:00 vor Ort sind.  Falls jemand eine
Wegbeschreibung zum Treffpunkt braucht: bitte melden.

Croft

-----------------------------------------------------------------------------



Stammtisch in BS (Derin, 23. Sep 2007, 18:40:47):
  Huhu,

wie letztesmal vereinbart, wollen wir uns am letzten Freitag im Monat
(also diesmal dem 28.9.) um 19:30 Uhr zum Braunschweiger Stammtisch
im Mephisto in der Fallersleber Strasse treffen.

Bis bald,
Derin.

-----------------------------------------------------------------------------



Re: Re: Stati Frankfurt/Main (Ark, 24. Sep 2007, 14:46:41):
~#! rn=Del rt=1190193260 rg=treffen.bekanntmachungen
~#! tid=1190193125
Da bisher nur diese eine Feedback Meldung bei mir ankam, gebe ich bis Mittwoch
noch eine Galgenfrist, danach wird nach Darmstadt umgezogen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Stammtisch in BS (Derin, 26. Sep 2007, 11:20:30):
~#! rn=Derin rt=1190565647 rg=treffen.bekanntmachungen
~#! tid=1190565647
Huhu,

der Stammtisch vom 28.9. wird ausnahmsweise VERLEGT. Wir treffen uns
eine Woche spaeter, am 5.10. um 19:30 im Mephisto.

Bis bald,
Derin.

-----------------------------------------------------------------------------



Berlin diese Woche: 30. September (Grimmborn, 26. Sep 2007, 11:58:13):
~#! on=Gloinson ot=1190799208 og=treffen
... ab 11 Uhr im Xion (http://xion-berlin.de/), reserviert auf "Becker".

Koemmet hungrig, der Brunch da ist reichhaltig.


-----------------------------------------------------------------------------



Stati in Bochum, 30.09.07 (Zesstra, 26. Sep 2007, 16:36:41):
Huhu,

naechstes Wochenende ist wieder Zeit fuer unseren Stati, diesmal mal wieder
zum Fruehstueck im Mandragora in Bochum.
Sonntag, den 30.09.2007, ab 12:00
im Mandragora (Konrad-Adenauer-Platz 1, Bochum)

Schonmal als Vorabinfo: Es gibt Interesse, auch wieder ein
Freitag-Abend-Treffen zu machen. Ich wuerde vorschlagen, dies anlaesslich des
naechsten Termins zu tun, als am 12.10.2007.

Wegbeschreibungen auf Anfrage. ;-)

Kommet zuhauf!

Zesstra

-----------------------------------------------------------------------------



Re^3: Stati Frankfurt/Main (Ark, 28. Sep 2007, 10:01:27):
~#! rn=Ark rt=1190638001 rg=treffen.bekanntmachungen
~#! tid=1190193125
Ok, wir verschieben das auf einen Termin demnaechst. Wenn alle wieder gesund
sind :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Stati Frankfurt, Freitag, 12.10.07 (Ark,  7. Okt 2007, 17:49:00):
Diesmal gilt's. New-in-Town, ab 18:30 Uhr. Kommet zuhauf.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Fr., 12.10. _kein_ Stati in Bochum (Zesstra, 10. Okt 2007, 20:46:44):
Huhu,

eigentlich schon viel zu spaet jetzt, aber ich habs irgendwie weitgehend
vergessen gehabt.
Also, die Ueberlegung, am kommenden Freitag einen Stati zu machen, haben wir
fallengelassen, weil das Mandragora Fr+Sa sein 30-jaehriges feiert und
dementsprechend da etwas sehr volles Haus sein wird. ;-)
Stattdessen waere mal die Ueberlegung, in der kommenden Woche Fr oder Sa Abend
(19./20.10.) anlaesslich der Spielemesse in Essen einen Stati zu veranstalten.
Gibt es da Interessenten bzw. Leute, die zur Spielemesse kommen und Interesse
an einem Stati mit uns haben?

Zesstra

-----------------------------------------------------------------------------



KA Stati 18.10/25.10/1.11/8.11/15.11 (Croft, 12. Okt 2007, 15:00:25):
Und die naechsten 5 Termine:
18.10 Zum Drachen (www.zumdrachen.de)
25.10 Zum Drachen (www.zumdrachen.de)
 1.11 Der Grieche (www.taverne-der-grieche.de)
 8.11 Green Corner (Am Wetterbach 90, Gruenwettersbach)
15.11 Il Caminetto (Kronenstrasse 5)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: Fr., 12.10. _kein_ Stati in Bochum (Montanus, 15. Okt 2007, 14:57:39):
~#! rn=Zesstra rt=1192042004 rg=treffen.bekanntmachungen
~#! tid=1192042004
Ich bin zwar die ganze WOche in Essen, werde aber nach der Messe keine Zeit
fuer einen Stammtisch haben - sorry.

-----------------------------------------------------------------------------



Stati Essen, Samstag, _20_.10. (Zesstra, 18. Okt 2007, 11:16:30):
[Ah, verdammt. Ich hatte den falschen Kalender hier liegen bzw. Montat
Dezember. Daher neuer, korrigierter Artikel. Der Stati soll Samstag Abend
sein, das waer der 20.10. Weiterhin schlug Mieze statt des Irish Pub das Cafe
Oliv vor.]

Huhu,

ok, irgendwie haben sich kaum Leute geruehrt, von einigen weiss ichs aber.
Also, ich wuerde mal folgendes ausrufen:
Stati in Essen-Ruettenscheid,
am 20.10., ab 20:00.

Treffpunkt soll sein das Cafe Oliv, Ruettenscheider Str. 203, nahe der
Kreuzung Ruettenscheider Str. / Grugaplatz. Liegt in der direkter Naehe zur
Messe und verkehrsguenstig zur A52.

Wer sich noch nicht sicher bzgl. des Kommens und der Wegbeschreibung ist,
moege sich bitte melden, ich wuerde auch vorschlagen, im Vorfeld mal noch
schnell Telefonnr. auszutauschen bzw. meine mitzuteilen. ;-)

Zesstra

-----------------------------------------------------------------------------



Re: Stati Essen, Samstag, _20_.10. (Mieze, 18. Okt 2007, 11:41:39):
~#! rn=Zesstra rt=1192698990 rg=treffen.bekanntmachungen
~#! tid=1192698990
Kleiner Nachtrag:

Die Plaetze im Oliv sind auf den Namen "Morgengrauen" reserviert.

Mieze

-----------------------------------------------------------------------------



Re: Re: Stati Essen, Samstag, _20_.10. (Montanus, 23. Okt 2007, 13:50:37):
~#! rn=Mieze rt=1192700499 rg=treffen.bekanntmachungen
~#! tid=1192698990
Konnte nicht kommen. War auf der Geburtstagsfete von Alicia, aeh Miss Canada
fuer euch.

-----------------------------------------------------------------------------



Stammtisch in BS (Derin, 25. Okt 2007, 11:45:10):
Huhu,

wie ueblich werden wir uns morgen, am letzten Fr im Monat, um 19:30 Uhr
im Mephisto in der Fallersleber Strasse treffen.

Bis bald,
Derin.

-----------------------------------------------------------------------------



Stati Bochum, 2.11. (Zesstra, 30. Okt 2007, 23:54:18):
Huhu,

nach dem Stati in Essen sind schon wieder 2 Wochen um, d.h. Zeit fuer nen
Stati. ;-)
Da am WE div. Leute unterwegs sind, bietet sich diesmal eigentlich nur der
Freitag Abend an. Ausserdem haben Arathorn und ich beschlossen, dem Clochard
mal wieder einen Besuch abzustatten, weil Reservierungen fuer Fr/Sa Abends im
Mandra schwierig sind.

Also, Termin ist:
Freitag, 2.11., ab 20:00
im Clochard am Buscheyplatz, Naehe Uni-Center.


Zesstra

-----------------------------------------------------------------------------



Netter Abend im Cafe Egal (in E) am 17.11.07 19:00 Uhr geplant (Gwen,  1. Nov 2007, 12:41:49):
Infos zum Cafe Egal gibt es hier: http://www.cafe-egal.de/

Aktuell schon zugesagt haben:
Shaky mit zwei Kollegen, Madness und ich.
Wer sonst Lust auf nen netten Abend hat ist herzlich eingeladen!
Wegen Reservierung schaun wir dann noch.

Ciao, Gwen.

-----------------------------------------------------------------------------



Stammtisch Braunschweig, 7.12. (Mcdee, 12. Nov 2007, 22:45:49):
Hallo ihr Lieben,

bekanntlich werfen dunkle Ereignisse ihren Schatten voraus, darum hier schon
mal die Einladung zum Braunschweiger Novemberstammtisch, der allerdings erst
im Dezember stattfinden wird, naemlich am siebenten. Das ist ein Freitag und
wir wollen uns bei mir zu Hause so ab 19 Uhr zu einer gepflegten
Rollenspielrunde treffen. Falls (wider Erwarten :-)) noch jemand ausser den
ueblichen Verdaechtigen daran teilnehmen moechte, bitte ich um eine
rechtzeitige Anmeldung.

Gruesse, Dee

-----------------------------------------------------------------------------



Vorankuendigung: Oeffentliche Audienz (Zook, 20. Nov 2007, 15:02:06):
Wir geben vorab bekannt, am 7. Dezember 2007, die genaue
Uhrzeit wird noch von den zustaendigen Stellen, bekannt
Uhrzeit wird noch von den zustaendigen Stellen bekannt
gegeben, eine oeffentliche Audienz zu geben. Sie wird 
im Rahmen des Marburger Weihnachtsmarktes bei saisonalen
Getraenken und Speisen abgehalten. 

Interessierte werden aufgefordert, ihr Interesse
zu notifizieren.

Zook.

-----------------------------------------------------------------------------



KA Stati 22.11/29.11 (Croft, 27. Nov 2007, 15:05:25):
22.11 Zum Drachen (www.zumdrachen.de)
29.11 Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: Vorankuendigung: Oeffentliche Audienz (Zook, 28. Nov 2007, 18:18:52):
~#! rn=Zook rt=1195567326 rg=treffen.bekanntmachungen
~#! tid=1195567326
Die oeffentliche Audienz beginnt um 18.00 Uhr am Weihnachtsmarkt,
der am Marktplatz in Marburg statt findet. Wir halten uns vor
der "Fielmann"-Filiale auf. Ueber das nachlaufende Besaeufnis
informiert Danu. 

Zook.

-----------------------------------------------------------------------------



Re: Re: Vorankuendigung: Oeffentliche Audienz (Danu, 28. Nov 2007, 19:19:10):
~#! rn=Zook rt=1196270332 rg=treffen.bekanntmachungen
~#! tid=1195567326
Na dann sach ich ma, wie es weiter geht:
Ab spaetestens 20 Uhr sind wir im Hinkelstein zu treffen. Da is dann
hoffentlich warm und das Bier kuehl.
Hinkelstein ist gleich neben dem Weihnachtsmarkt, also bestens mit dem Navi zu
finden ;) Oder man schaut sich die Karte / Wegbeschreibung unter
http://www.hinkelstein-marburg.de/ an...

Danu

-----------------------------------------------------------------------------



Re^3: Vorankuendigung: Oeffentliche Audienz (Zook, 28. Nov 2007, 21:25:50):
~#! rn=Danu rt=1196273950 rg=treffen.bekanntmachungen
~#! tid=1195567326
Traditionell gilt fuer den Hinkelstein: Das ist eine
Kellerkneipe zum Ablitern und gegessen haben sollte man
vorher, da die nur Kleinigkeiten, wenn ueberhaupt, 
anbieten. Zook.

-----------------------------------------------------------------------------



Re^4: Vorankuendigung: Oeffentliche Audienz (Zook, 28. Nov 2007, 21:26:14):
~#! rn=Zook rt=1196281550 rg=treffen.bekanntmachungen
~#! tid=1195567326
Ist nicht so schlimm, wie es klingt, ich finde es
ne megagemuetliche Kellerkneipe. ;) Zook.


-----------------------------------------------------------------------------



Re^5: Vorankuendigung: Oeffentliche Audienz (Zook, 30. Nov 2007, 22:08:56):
~#! rn=Zook rt=1196281574 rg=treffen.bekanntmachungen
~#! tid=1195567326
Nachschlag!

Bevor hier rumgepienzt wird: Selbstverstaendlich kann fuer das 
koerperliche Wohl nicht nur mit Getraenken gesorgt werden. Auf dem
Weihnachtsmarkt finden sich eine Ruhe von ueblichen Fressbuden. Wem
dann noch ein Auflaug, ein Baguette, ein Schnitzel oder ein Caesar's
Salad zum Glueck fehlt: Direkt um den Hinkelstein herum (wirklich 
nur hinkelsteinwurfweit entfernt) gibt es mehrere Bistros, Restaurants
o.ae. Es muss keiner verhungern. Hauptsache alle litern sich am Ende
im Hinkelstein ab. Da ich kein Bier vertrage, werde ich die Audienz
gegen 20.15 Uhr beenden muessen.

Zook.

-----------------------------------------------------------------------------



Re^6: Vorankuendigung: Oeffentliche Audienz (Kessa,  1. Dez 2007, 03:47:20):
~#! rn=Zook rt=1196456936 rg=treffen.bekanntmachungen
~#! tid=1195567326
'Rumpienzen' finde ich fast noch besser als 'ablitern' (was ich aber auch
zugegebenermassen schon kannte).

Kessa, zufrieden grinsend ihren Wortschatz erweiternd.

-----------------------------------------------------------------------------



Re^6: Vorankuendigung: Oeffentliche Audienz (Terrorist,  3. Dez 2007, 22:00:12):
~#! rn=Zook rt=1196456936 rg=treffen.bekanntmachungen
~#! tid=1195567326
Hmm da werde ich wohl eine Kette mitbringen muessen fuer das Goettchen ;)

Weiss noch nicht obs passt, aber vielleicht gebe ich euch die Ehre ;)


Cu

-----------------------------------------------------------------------------



KA Stati 13.12. (Croft, 11. Dez 2007, 10:08:57):
13.12 Der Grieche (www.taverne-der-grieche.de)
Beginn wie immer um 20:00.

Croft

PS: Der Nikolausstati war im Drachen ;-)

-----------------------------------------------------------------------------



KA Stati 20.12. (Croft, 14. Dez 2007, 17:38:16):
20.12. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.  Wo und ob die Stammtische am 27.12. und 3.1.
stattfinden, wird noch besprochen.  Der Drachen hat jedenfalls Urlaub.

Croft

-----------------------------------------------------------------------------



Gluehwein im Pott (Miril, 15. Dez 2007, 16:27:27):
Huhu,
auch wir im Ruhrgebiet wollen noch einen Tag Gluehwein trinken gehen. Dazu
haben wir uns den Weihnachtsmarkt in Bochum ausgesucht. Wir treffen uns dort
am

Freitag, den 21.12.2007 um 19.00 Uhr

bei der Hauptstelle der Sparkasse.

Ihr Mudderlein kommet, oh kommet zuhauf!

Miril

-----------------------------------------------------------------------------



KA-Sonderstati in Bochum am 1.1. (Croft,  1. Jan 2008, 16:08:32):
Und zwar wie schon letztes Mal im Mandragora (Adenauerplatz 1) ab 19:00-

Croft

-----------------------------------------------------------------------------



KA Stati 3.1. (Croft,  2. Jan 2008, 20:19:25):
Diesmal gehts ins Ostend (Ecke Gottesauer Strasse / Ostendstrasse).
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA Stati 10.1/17.1/24.1/31.1 (Croft,  8. Jan 2008, 14:02:01):
10.1 Zum Drachen (www.zumdrachen.de)
17.1 Zum Drachen (www.zumdrachen.de)
24.1 Der Grieche (www.taverne-der-grieche.de)
31.1 Il Caminetto (Kronenstrasse 5)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



BS Stati 25.1. (Derin, 21. Jan 2008, 15:19:13):
Hi!

Wie jeden letzten Freitag im Monat findet auch am 25.1. der
Braunschweiger Stammtisch statt -- diesmal wieder im Mephisto
(ueppige gutbuergerliche felinische Kueche) in der Fallers-
leber Strasse/Ecke Theaterwall. Wir freuen uns schon auf Euer
zahlreiches Erscheinen. :)

HAND,
Derin.

-----------------------------------------------------------------------------



Re: BS Stati 25.1. (Derin, 21. Jan 2008, 15:23:32):
~#! rn=Derin rt=1200925153 rg=treffen.bekanntmachungen
~#! tid=1200925153
P.S.: Startschuss ist 19:30 Uhr.

-----------------------------------------------------------------------------



Fruehstueck in Bochum. (Arathorn, 29. Jan 2008, 00:12:40):
Hallo zusammen,

wie gerade spontan beschlossen wurde, findet am naechsten Sonntag,
dem 3. Februar 2008, ein Fruehstuecks-Stati im Mandragora in Bochum statt.
Los geht's so gegen 11:00 Uhr. Bitte meldet Euch kurz, ob Ihr kommt, dann
koennen wir einen passenden Tisch reservieren.

Wer Wegbeschreibungen braucht, oder Abholservice vom Bahnhof oder aehnliches:
Bitte melden, z.B. bei mir oder auch bei Zesstra.

Kommet zuhauf! :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



24. Feb Brunch in Berlin (Gloinson, 29. Jan 2008, 00:31:56):
Mahlzeit,
wir werden am Sonntag den 24. mal wieder ein wenig brunchen. Im Xion im Norden
Berlins, dort, wo man so richtig viel mampfen kann:

Kurzuebersicht:
- http://www.xion-berlin.de/
- Tram 13/S Schnhauser Allee: Stargarder Str./Pappelallee
- 24. Februar, ab 11 Uhr

Bitte meldet euch kurz bei mir, damit ich rechtzeitig genug Plaetze
reservieren kann.

Kommet noch viel haeufiger/gehaeufter! :)


-----------------------------------------------------------------------------



KA Stati 7.2./14.2./21.2./28.2. (Croft,  4. Feb 2008, 14:19:46):
 7.2. Zum Drachen (www.zumdrachen.de)
14.2. Zeus (Durlach, Pfinztalstr. 75)
21.2. La Tegola (Jollystrasse 19)
28.2. Zum Drachen (www.zumdrachen.de)

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: 24. Feb Brunch in Berlin (Gloinson, 14. Feb 2008, 12:19:36):
~#! rn=Gloinson rt=1201563116 rg=treffen.bekanntmachungen
~#! tid=1201563116
> Berlin: Brunch am Sonntag, den 24. Februar
>         http://www.xion-berlin.de/
>         Tram 13/S Schnhauser Allee: Stargarder Str./Pappelallee

Ab 10:30 sind circa 15 Plaetze auf den Namen "Gloin" reserviert.


-----------------------------------------------------------------------------



KA goes Flammkuchen 26.4. (Croft, 15. Feb 2008, 15:17:42):
Interessierte koennen sich schon mal den 26.4. freihalten.  Welche
Flammkuchenschmiede aufgesucht wird steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum (Humni, 25. Feb 2008, 21:28:27):
Huhu,

uns zieht es mal wieder zum Fruehstuecken ins Mandragora. Am Sonntag, den
2.3., etwa ab 11 Uhr (ich kenn da wen, der wird schon wieder spaeter
kommen...).

Special Guests sind noch keine eingeplant, aber das kann sich ja noch aendern.

Kommet zuhauf!

Humni

-----------------------------------------------------------------------------



BS Stati 29.2. (Shaeena, 27. Feb 2008, 01:27:03):
Hallo,

da Derin verschollen scheint, obliegt die schoene Aufgabe des 
Stati-Ankuendigens diesen Monat mir:
Wie jeden letzten Freitag im Monat, findet auch an diesem, dem 29.2.
der Braunschweiger Stammtisch im Mephisto statt.
Zahlreiches erscheinen wird begruesst, lassen wir uns ueberraschen,
ob wir es auf ein zwergisches "viele Teilnehmer" schaffen ;-)

Gruss,
Shaeena

-----------------------------------------------------------------------------



Re: BS Stati 29.2. (Shaeena, 28. Feb 2008, 01:19:10):
~#! rn=Shaeena rt=1204072023 rg=treffen.bekanntmachungen
~#! tid=1204072023
PS: Ich hab den gleichen Fehler wie Derin gemacht und nicht
erwaehnt, dass es um 19.30 Uhr losgeht.
Jetzt wisst ihr Bescheid, schoenen Gruss ;-)

-----------------------------------------------------------------------------



KA Stammtisch 6.3. (Boing,  5. Mar 2008, 17:41:19):
Entgegen meines inzwischen geloeschten Artikels findet der Stammtisch
am 6.3. NICHT im Drachen statt sondern beim Griechen am Berliner Platz.

Beginn 20:00 Uhr.

  Boing

-----------------------------------------------------------------------------



KA Stati 13.Mar 2008 (Gingko,  7. Mar 2008, 10:20:10):
Der Karlsruher Stammtisch naechste Woche findet wieder im Drachen
(www.zumdrachen.de) statt. Wie immer Donnerstag (13.3.) ab 20h
gingko.

-----------------------------------------------------------------------------



KA Sonder-Stati 22.3. (Croft, 21. Mar 2008, 21:39:01):
Da wir einen Sondergast haben, gibts auch mal wieder einen Sonder-Stati:
FG1, Rintheimer Str. 21 (www.fg1.sportkneipe.de)
Start 20:00

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum, 30.3. (Zesstra, 26. Mar 2008, 20:52:45):
Huhu,

wir wollen uns am kommenden Sonntag mal wieder zum Fruehstueck im Mandragora
in Bochum versammeln. Also, am Sonntag, 30.3., etwa ab 11:00 (ihr koennt auch
spater noch kommen *g*).
Die Glaskugel sagt momentan einen Special Guest voraus. ;-)

Kommet zuhauf!

Zesstra

-----------------------------------------------------------------------------



KA Stati 27.3. (Gingko, 27. Mar 2008, 11:50:31):
Der Karlsruher Stammtisch findet heute im Griechen
(www.taverne-der-grieche.de) statt. Wie immer ab 20:00h.
Gruesze gingko

-----------------------------------------------------------------------------



KA Stati 3.4. (Gingko, 31. Mar 2008, 14:43:39):
Hallo zusammen,
der Karlsruher Stammtisch diesen Donnerstag findet im Drachen statt
(www.zumdrachen.de). Wie gewohnt ab 20h.
gruesze gingko

-----------------------------------------------------------------------------



Fruehstueck in Bochum, 14.4. (Zesstra, 31. Mar 2008, 19:35:37):
Da wir gestern drueber gesprochen haben, die Fruehstuecks-Statis frueher
ankuendigen zu wollen, werde ich das mal tun, bevor ich es vergessen:
Das naechste Fruehstueck in Bochum findet statt in knapp 2 Wochen,
am 14.4., ab 11:00
im Mandragora in Bochum.

Kommet zuhauf,

Zesstra

-----------------------------------------------------------------------------



Re: Fruehstueck in Bochum, 14.4. (Zesstra,  1. Apr 2008, 22:01:20):
~#! rn=Zesstra rt=1206984937 rg=treffen.bekanntmachungen
~#! tid=1206984937
Ups. Ich wurde gerade von Masul drauf aufmerksam gemacht, dass der 14.4. ein
Montag ist... ;-)
Also, wir treffen uns natuerlich nicht Montag, sondern Sonntag, also am
13.4.!

Zesstra

-----------------------------------------------------------------------------



Stati Ffm, 15.04.08 (Del,  8. Apr 2008, 15:58:07):
Huhu Zusammen,
die ueblichen Verdaechtigen aus Ffm und Umgebung treffen sich mal wieder zu
einem kleinen Stammtisch.
Ort: New in Town, Niddastr. 101, 60329 Frankfurt
Zeit: Dienstag, 15.04. ab 18:30 Uhr

Gwen wird uns die gemuetliche Sofaecke oben reservieren. ;-)

Kommet zu Hauf!
Gutes Essen, feine Heiss- und Kaltgetraenke sowie viel Spass werden
garantiert!

I.A. der Rhein-Main-Connection
Del

-----------------------------------------------------------------------------



KA Stati 10.4. (Croft,  9. Apr 2008, 01:06:54):
10.4 Il Caminetto (Kronenstrasse 5)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 26.4. (Ark, 15. Apr 2008, 13:16:22):
~#! rn=Croft rt=1203085062 rg=treffen.bekanntmachungen
~#! tid=1203085062
Hm, ich teste mal den Attraktivitaetsgrad meiner Anwesenheit ... wenn man das
auf den 25.04. verlegen koennte, waere ich dabei :-) Je frueher, desto besser,
oder?


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: KA goes Flammkuchen 26.4. (Croft, 16. Apr 2008, 22:25:14):
~#! rn=Ark rt=1208258182 rg=treffen.bekanntmachungen
~#! tid=1203085062
Dein Attraktivitaetsgrad kommt leider nicht gegen die Summe der Werte der
Leute, die den Samstag praeferieren, an.
So wie es bisher aussieht treffen wir uns am Samstag den 26.4 um 18:15
am Uniparkplatz und fahren dann nach Neuhaeusel zur Auberge Ecurie du Rhin
um dort ab 19:00 leckere Flammkuchen zu verzehren.  Interessenten bitte
bei mir melden, damit das mit den Mitfahrgelegenheiten und den Abholwuenschen
unter einen Hut geht.

Croft

-----------------------------------------------------------------------------



Re^3: KA goes Flammkuchen 26.4. (Ark, 16. Apr 2008, 22:36:11):
~#! rn=Croft rt=1208377514 rg=treffen.bekanntmachungen
~#! tid=1203085062
Mift, naja, Mahlzeit euch :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



KA Stati 17.4. (Croft, 17. Apr 2008, 12:05:43):
17.4. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stati 24.4.-29.5. (Croft, 17. Apr 2008, 22:16:34):
24.4. Asia Dynasty (www.asia-dynasty-ka.de)
 1.5. Zum Drachen (www.zumdrachen.de)
 8.5. FG Eins (www.fg-eins.de)
15.5. Chiang Mai (Durlacher Allee 11)
22.5. Der Grieche (www.taverne-der-grieche.de)
29.5. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re^4: KA goes Flammkuchen 26.4. (Croft, 22. Apr 2008, 15:37:16):
~#! rn=Ark rt=1208378171 rg=treffen.bekanntmachungen
~#! tid=1203085062
Last call, morgen abend wird reserviert.

Croft

-----------------------------------------------------------------------------



Rhein-In-Flammen-Stati Bonn (Vanion, 22. Apr 2008, 21:02:49):
~#! rn=Vanion rt=1208375145 rg=treffen
~#! tid=1208375145
Da ich hinreichend positiven Feedback bekommen habe, erlaube ich mir mal einen
Rhein-in-Flammen-Stati am Samstag, den 03. Mai auszurufen.

Wo genau wir uns in den Rheinauen treffen, weiss ich noch nicht. Vielleicht
hat einer der Ur-Bonner da eine Idee, aber ich halte 19:00 fuer einen guten
Zeitpunkt.

Die Rheinauen findet man mit oeffentlichen Verkehrsmitteln am besten in dem
man bis zur S-Bahn-Haltestelle 'Rheinauen' faehrt. Etwas mutigere koennen sich
auch von der Haltestelle 'Deutsche Telekom/Platz der Vereinten Nationen'
durchkaempfen.

Ich geb euch gern meine Handynummer; und fuer weiter anreisende hab ich in
meiner Wohnung genug Platz um ein paar Leuten Asyl zu bieten. Meldet euch
einfach.

Gruesse,
V*

-----------------------------------------------------------------------------



Re: Rhein-In-Flammen-Stati Bonn (Padreic, 24. Apr 2008, 19:39:04):
~#! rn=Vanion rt=1208890969 rg=treffen.bekanntmachungen
~#! tid=1208375145
bzgl. gutem Treffpunkt in den Rheinauen: Letztlich haengt alles davon ab, was
hr genau machen wollt und von wo ihr spaeter das Feuerwerk sehen moechtet.
Das Bonnerfeuerwerk findet hinter dem grossen See statt. Die beste Sicht auf
das Feuerwerk hat man folglich auf der anderen Seeseite. Sofern man gern die
Musik zum feuerwerk hoeren moechte (gibt es recht oft), dann ist man an dieser
Stelle auch in jedem Fall gut aufgehoben. Das Spektakel der Schiffe ist von
dort aber nicht zu sehen!
Rhein in Flammen ist im Ursprung ja eigentlich eine Veranstaltung von
Schiffen. Moechte man die mal sehen (insgesamt sind das immer etwas ueber 50
beleuchtete Schiffe), dann muss man wirklich runter an den Rhein oder hoch auf
die Bruecke. Letztlich eine Geschmacksfrage, weil beides sehr imposant ist.
Ein Treffen mit Auswaertigen innerhalb der Rheinaue ist eigentlich nur mittels
Handykommunikation moeglich. Zumindest bei gutem Wetter sind fuer alles andere
zuviele Leute unterwegs wenn nicht alle den Treffpunkt exakt kennen.

Meine Empfehlung: steigt bei der Deutschen Telekom aus und trefft Euch dann
dort unten am Rhein. Es ist genug los, als das jeder locker runter an den
Rhein kommt, aber wenig genug um sich gut finden zu koennen und das warten
dort ist sicher was schoener als direkt an der Haltestelle.
Wer zu spaet kommt, muss zwingend ein Handy mithaben.

Es moege uebrigends kein Auswaertiger auf die irre Idee kommen mit dem Auto
zur Rheinaue fahren zu wollen. Selbst wenn es Euch gelingen sollte einen
Parkplatz zu finden (was schon sehr unwahrscheinlich ist), so kommt ihr
hinterher unter Garantie ueber Stunden hinweg dort nicht weg. Im Zweifel nutzt
nen P&R Parkplatz und fahrt mit der Bahn rein.


Pad*

-----------------------------------------------------------------------------



Re^5: KA goes Flammkuchen 26.4. (Croft, 25. Apr 2008, 12:27:37):
~#! rn=Croft rt=1208871436 rg=treffen.bekanntmachungen
~#! tid=1203085062
Reserviert ist.  Am Uniparkplatz trifft sich nun niemand mehr, da der
Grossteil direkt faehrt bzw sich dezentral sammelt ;-)

Croft

-----------------------------------------------------------------------------



Re^6: KA goes Flammkuchen 26.4. (Croft, 25. Apr 2008, 12:28:15):
~#! rn=Croft rt=1209119257 rg=treffen.bekanntmachungen
~#! tid=1203085062
Auberge Ecurie du Rhin
33, rue des Roses
67480 Neuhaeusel
0033(0)388864064

Croft

-----------------------------------------------------------------------------



ExMerlinStati in Bochum (Miril, 25. Apr 2008, 19:19:02):
Huhu,

am Sonntag, den 27.4.2008 wollen wir uns mal wieder zum gemeinsamen
Fruehstueck im Mandragora treffen. Als Uhrzeit schlag ich mal 12 Uhr vor,
damit Humni und ich nicht ganz so viel zu spaet kommen ;). Ueber auswaertige
Gaeste freuen wir uns natuerlich immer, die koennen auch Samstag abend kommen
und bei uns naechtigen. 

In diesem Sinne: Kommet zuhauf (und sagt Bescheid, damit wir nen adaequaten
Tisch reservieren koennen).

Miril

-----------------------------------------------------------------------------



Re: Re: Rhein-In-Flammen-Stati Bonn (Vanion, 30. Apr 2008, 20:57:31):
~#! rn=Padreic rt=1209058744 rg=treffen.bekanntmachungen
~#! tid=1208375145
Ich finde die Idee gut. Treffen wir uns gegen 19:00 an der SBahn-Haltestelle
Platz der Vereinten Nationen. Alternativ koennen wir uns bei mir in
Godesberg/Heiderhof treffen.

V*

-----------------------------------------------------------------------------



grillen in marburg? (Innuendo,  3. Mai 2008, 14:45:45):
hiho! haettet ihr lust auf nen netten grillabend in mr? irgendwann im mai oder
juni... ueber schoene grillplatzvorschlaege wuerd ich mich auch freuen! ich
kenn nur das lahnufer...;-) 
lg innu

-----------------------------------------------------------------------------



Stati Ffm, 08.05. (Del,  5. Mai 2008, 18:13:21):
Huhu Zusammen,
am Donnerstag, 08.05. gibt's nen Spontanstammtisch in Ffm.
Ort: New in Town, Niddastrasse, Ffm
Zeit: 18:30 Uhr
Bisher zugesagt haben: Gwen, Demonlord, Xutelius, Innuendo und meine
Wenigkeit. Auf unseren witzischen Ark muessen wir leider verzichten.
Aber trotzdem (oder vielleicht gerade deswegen...): Kommet in Scharen!
Del


-----------------------------------------------------------------------------



Fruehstueck 18.5. in Bochum (Zesstra, 16. Mai 2008, 11:35:44):
Wie immer: eine spaete Ankuendigung, hoffentlich nicht zu spaet.
Unser naechstes Fruehstueck ist kommenden Sonntag, den 18.5.,
ab 11:00 im Mandragora in Bochum.
Ich werde ausnahmsweise spaeter kommen, weil ich noch jemandem zum Flughafen
fahren muss, aber das sollte euch nicht stoeren. ;-)

Kommet zuhauf,

Zesstra

-----------------------------------------------------------------------------



Kneipentour Sontag 18.05. (Demonlord, 16. Mai 2008, 16:03:11):
Hi Frankfurter,

angesichts den anhaltend warmen Wetter friert es die Stammgaeste im "Zum
frischen Wind" etwas, daher findet am Sonntag eine sponate Kneipentour in
Alt-Sachsenhausen statt. Wer hat Lust auf ein/zwei Liter Apfelwein vorbei zu
schauen?

Gruss DL

-----------------------------------------------------------------------------



Grill-Stati!!! (Yuli, 24. Mai 2008, 09:44:00):
Hallo zusammen,

um die gute Idee von Innuendo aufzugreifen: Grillen macht Spass! :)
(Rubrik: Treffen)

Da sich schon einige gemeldet haben, die gerne vorbeikommen wuerden, gebe ich
jetzt folgendes Treffen bekannt:

Ein Stati, diesmal nicht im Mandragora, sondern am (bekannten?) Unterbacher
See in Duesseldorf. Hier gibts rund um den See mehrere Grillplaetze, die gegen
eine kleine Gebuehr gemietet werden koennen. Falls Interesse besteht, laesst
sich der Grill-Stati auch in einen Grill-Freibad-Stati verwandeln. Das Freibad
ist gerade renoviert worden, und hat einen tollen Sandstrand bekommen.

Bisher habe ich terminmaessig nur Rueckmeldungen fuer den 14. bekommen, daher
will ich den Grillplatz fuer diesen Samstag reservieren. Dazu waere es aber
immer noch gut zu wissen, wie viele etwa kommen, deswegen:

Meldet euch doch bitte bald und sehr zahlreich ;) bei Krstfrs oder mir direkt
oder ueber die MPA!!! Es wuerde mich freuen, wenn das ganze zustande kaeme,
also in diesem Sinne:
Kommet (meldet euch) zuhauf!!!

Gruss,
Yuli

P.S.: Wer sich ueber die Anfahrt Gedanken machen sollte: Wenn ihr von der A 46
abfahrt, seid ihr im Prinzip schon da! Homepage dazu:
http://www.unterbachersee.com/online/index.php?id=anfahrt


-----------------------------------------------------------------------------



KA Stati 5.6.-12.6. (Croft,  4. Jun 2008, 16:52:14):
 5.6. Zum Drachen (www.zumdrachen.de)
12.6. Asia Dynasty (www.asia-dynasty-ka.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



FLEISCH! (Krstfrs, 14. Jun 2008, 02:16:28):
Huhu,

so, Last-Minute-Informationen.
Eine Navitaugliche Adresse ist Kleiner Torfbruch 31, 40627 Duesseldorf. Fahrt
aber lieber den Schildern Richtung Bootsstrand nach. Von der A3 auf die A46
oder von Osten auf der A46 nach der Ausfahrt rechts abbiegen, von der A46 von
Westen links abbiegen. Die grosse Kreuzung passieren und geradeaus, bis ihr
links zum Bootsstrand abbiegen koennt.
http://www.unterbachersee.com/online/index.php?id=anfahrt

Wir treffen uns dort am Minigolfplatz (ggue. des Parkplatzes) um 14 Uhr,
danach geht es in einer Kolonne zu mir.
Fuer Fleisch, Salate, Bier ist gesorgt.

Gruesse,
Krstfrs

-----------------------------------------------------------------------------



FLEISCH! (Krstfrs, 14. Jun 2008, 11:59:09):
Huhu,

fuer alle, die spaeter kommen, mache ich hier noch meine Adresse bekannt:
Gian Perrone
Morper Allee 13
40699 Erkrath

Gruesse,
Krstfrs

-----------------------------------------------------------------------------



Kieler Woche (Janne, 15. Jun 2008, 17:27:06):
Es ist Juni! Das bedeutet Kieler Woche!! Und damit steht auch wieder der
obligatorische Kieler-Woche-Stammtisch an J
Zur groben Planung: am 28. 6. steht ab 10 Uhr wieder Baden/Grillen am
Falckensteiner Strand an mit wunderbarem Blick auf die Windjammerparade,
abends dann ein Bummel von einer Konzertbuehne zur naechsten. Eine Uebersicht
ueber die Konzerte findet Ihr unter www.kiel4kiel.de. Dazwischen oder am
Sonntag - je nach Windverhaeltnissen und Interesse - ein kleiner Segeltoern
(bitte auf Schuhe mit hellen Sohlen achten), um dann am Sonntag das
supergeniale Feuerwerk zu geniessen. 

Und somit  ganz traditionell nach dem Kieler Woche Motto: Leinen los!!

-----------------------------------------------------------------------------



KA Stati 19.6 (Croft, 19. Jun 2008, 17:52:20):
Heute abend sind wir im Drachen (www.zumdrachen.de) und zwar vereinzelt
auch schon ab 19:00 um den Tisch sicher zu haben.

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum (Arathorn, 20. Jun 2008, 21:10:41):
Hiho,

es wird mal wieder im Mandragora gefruehstueckt, und zwar am kommenden
Sonntag (22.6.2008), wie gewohnt ab 11:00. Wie ebenfalls gewohnt, werd ich
wohl keinen Tisch reservieren. 

Kommet zuhauf!

Gruss, A*n.

-----------------------------------------------------------------------------



KA Stati 26.6 (Croft, 26. Jun 2008, 01:30:55):
Heute sind wir wieder ab 19:30 im Drachen (www.zumdrachen.de) anzutreffen.
Ueber die naechsten Lokalitaeten wird vor Ort entschieden.

Croft

-----------------------------------------------------------------------------



Brunch Berlin Sonntag, 20. Juli (Gloinson, 27. Jun 2008, 10:58:42):
Hallo Fresssaecke,

am Sonntag den 20. Juli werden wir in Berlin brunchen. Ort wird noch
verhandelt, Zeit wie immer wochenendfreundlich ab etwa 11 Uhr.

Reservieret die Zeit zu Hauf. Es gibt auch einen ganz ueberraschenden
Ueberraschungsgast aus dem Pott, der sich ueberaschenderweise schon
vor ein paar Wochen angemeldet hat.

Reservieret die Zeit zu Hauf :)

PS: Das Brunchen am Samstag, den 19. Juli wird durch intensives Zwergenbaden
ersetzt. Jeder suche sich bitte einen Zwerg seiner Wahl.


-----------------------------------------------------------------------------



KA Stati 2.7 (Croft,  2. Jul 2008, 14:37:15):
Morgen sind wir im Der Grieche (www.taverne-der-grieche.de) ab 20:00
zu finden.  Der Spanier wurde auf Grund des geringen Entgegenkommens
am Sonntag vorlaeufig boykottiert.

Croft

-----------------------------------------------------------------------------



KA Stati 10.-24.7. (Croft,  4. Jul 2008, 12:48:48):
Die naechsten Termine:
10.7. La Cage (www.lacage.de)
17.7. Italiener (genaueres folgt)
24.7. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: Brunch Berlin Sonntag, 20. Juli (Gloinson,  7. Jul 2008, 20:06:11):
~#! rn=Gloinson rt=1214557122 rg=treffen.bekanntmachungen
~#! tid=1214557122
So. Ort ist nun auch geklaert. Im Xion ist am 20.07. ab 10:30 auf den Namen
Morgengrauen reserviert.


-----------------------------------------------------------------------------



Re: KA Stati 10.-24.7. (Croft, 14. Jul 2008, 11:34:44):
~#! rn=Croft rt=1215168528 rg=treffen.bekanntmachungen
~#! tid=1215168528
Am 17. gehts ins San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )

Croft

-----------------------------------------------------------------------------



Stati in Schleswig (Vanion, 22. Jul 2008, 20:04:52):
Hallo, 

am Freitag, den 25.07.2008, treffen wir uns ab 20:00 in der Asgaard-Brauerei
in Schleswig zum Haithabu-Sonderstati.

Kommet in Rudeln!

Infos: www.asgaard.de

V*

-----------------------------------------------------------------------------



KA Stati 31.7-14.8 (Croft, 30. Jul 2008, 15:51:45):
31.7 FG1 (www.fg-eins.de)
 7.8 Der Grieche (www.taverne-der-grieche.de)
14.8 Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stammtisch Bochum - Sonntag, 10.8. (Arathorn,  5. Aug 2008, 21:21:05):
Hiho,

wie gewohnt, diesmal lediglich etwas ausser Takt, am kommenden Sonntag
wieder Fruehstuecks-Stati in Bochum.

Ort: Mandragora, Konrad-Adenauer-Platz 1
Zeit: ab 11:00 (Fruehstueck gibts aber bis 17:00)

Kommet zuhauf! :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Stati 21.8-11.9 (Croft, 14. Aug 2008, 23:59:49):
21.8 Titanic (www.ticka.net)
28.8 Asia Dynasty (www.asia-dynasty-ka.de)
 4.9 Der Grieche (www.taverne-der-grieche.de)
11.9 Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Fruehstueck (Miril, 22. Aug 2008, 16:24:56):
Huhu,

am Sonntag, den 24.8., ab 11 Uhr treffen wir uns wie gewohnt im Mandragora in
Bochum. Auswaertige Gaeste sind wie immer gern gesehen.

Kommet zuhauf,

Miril

-----------------------------------------------------------------------------



Museumsuferfest 2008 in Frankfurt (30.08.08) (Gwen, 28. Aug 2008, 18:30:50):
Wir werden am Samstag auf dem Museumsuferfest in Frankfurt sein.
Treffen: 13:00 Uhr auf dem Holbeinsteg, nrdliches Ufer.
Unter anderem nehmen ein paar MGler am Drachenbootrennen teil, 
naemlich im Team "Summer Pirates" und im "Team: bahn.de".
Wer uns anfeuern will:
Team: bahn.de startet im Open-Cup um 9:55 und dann wieder in der Zeit ab 10:40
bis 12:00 Uhr
Summer Pirates im Mixed-Cup um 12:20 Uhr

Kommt und unterstuetzt uns, indem Ihr uns kraeftig anfeuert!
Macht Fotos!
Und geniesst die tolle Atmosphaere auf dem bekannten Frankfurter
Museumsuferfest!
(Infos zum Museumsuferfest:
http://www.frankfurt-tourismus.de/cms/tourismussuite/de/messen_frankfurt_veran
staltungen/museumsuferfest_muf_frankfurt.html 
und http://www.museumsuferfest-frankfurt.de/)

Fuer weitere Infos koennt Ihr mich gerne anmailen/ansprechen.

Sportlich-drachische Gruesse,
Gwen.

-----------------------------------------------------------------------------



KA Sonder-Stati 14.9. (Croft, 29. Aug 2008, 12:00:17):
Es wird mal wieder Zeit Panos in seiner Seemuschel zwischen Neuthard
und Buechenau zu besuchen.  Als Termin wurde Sonntag der 14.9. um
13:00 auserkoren.  Treffen entweder direkt dort oder in Karlsruhe.
Fuer Autofahrer um 12:30 (wo und wie das mit den Mitfahrgelegenheiten
aussieht wird noch ausgekluegelt) oder um 11:45 fuer Radfahrer (sind
~20km von KA aus).
 
Webseite der Seemuschel
http://www.av-buechenau.de/17503.html
und bei Google-Maps sieht man das Gebaeude unter
http://tinyurl.com/n7k2v

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bo (Miril,  5. Sep 2008, 19:16:36):
Huhu,

am Sonntag, den 7.9.08 treffen wir uns wie gehabt ab 11 Uhr zum Fruehstueck im
Mandragora am Bochumer Bermudadreieck.

Kommet zuhauf,

Miril

-----------------------------------------------------------------------------



Mampf-Stati am 21. September in Berlin (Gloinson, 17. Sep 2008, 13:50:43):
Auf kurzfristige Anfragen bekommt man kurzfristige Antworten: Nach der
Anmeldung leckerer Zwerge aus Dresden, anderthalb leckerer Zwerge aus Berlin
und generellen grossen Hungergefuehls habe ich soeben reserviert:

- Xion Berlin
- http://xion-berlin.de/wegbeschreibung/so-finden-sie-uns.html
  (S Schoenhauser Allee)
- 21. September, ab 10:30
- Name: "Morgengrauen"

Happa! Happa! Mampf! (*1)

Krischan

(*1) Koemmet in grossen Haeufchen.


-----------------------------------------------------------------------------



KA Stati 18.9. (Gingko, 17. Sep 2008, 17:53:46):
Morgen (18.9.) sind wir in der Pizzaria Portobello in Ettlingen (Kronenstr.
11) www.portobello-ettlingen.de

-----------------------------------------------------------------------------



KA Stati 25.9. (Croft, 21. Sep 2008, 13:07:33):
Der Stati findet im Zum Drachen (www.zumdrachen.de) statt.
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Sonder-Stati 18.10. (Croft, 21. Sep 2008, 13:09:01):
Diesmal gehts abends ins Elsass zum Flammkuchenessen.  Genauere Zeit
und Lokalitaeten werden noch bekanntgegeben.

Croft

-----------------------------------------------------------------------------



KA Stati 2.10-6.11 (Croft, 25. Sep 2008, 23:45:25):
 2.10. Asia Dynasty (www.asia-dynasty-ka.de)
 9.10. Zum Drachen (www.zumdrachen.de)
16.10. Der Grieche (www.taverne-der-grieche.de)
23.10. Zum Drachen (www.zumdrachen.de)
30.10. Pizzaria Portobello (www.portobello-ettlingen.de)
 6.11. Asia Dynasty (www.asia-dynasty-ka.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA Sonder-Stati 18.10. (Croft, 10. Okt 2008, 01:22:18):
~#! rn=Croft rt=1221995341 rg=treffen.bekanntmachungen
~#! tid=1221995341
Als Ort ist soweit eine neue Lokalitaet angedacht:
Auberge de la Foret
42, route de Strasbourg
67470 Seltz
Fuer die Reservierung bitte bis naechste Woche Mittwoch bei mir melden,
damit wir am Donnerstag verbindliche Zahlen durchgeben koennen.  Bisher
sind wir 16 :-)

Croft

-----------------------------------------------------------------------------



Re: Re: KA Sonder-Stati 18.10. (Croft, 13. Okt 2008, 11:51:18):
~#! rn=Croft rt=1223594538 rg=treffen.bekanntmachungen
~#! tid=1221995341
Treffen ist um 18:00 am ueblichen Uniparkplatz.  Bitte bzgl Organisation
der Mitfahrgelegenheiten bei mir melden, wer fahren kann und wer noch
einen Mfg braucht bzw wer direkt faehrt.

Croft

-----------------------------------------------------------------------------



Re^3: KA Sonder-Stati 18.10. (Croft, 17. Okt 2008, 12:31:26):
~#! rn=Croft rt=1223891478 rg=treffen.bekanntmachungen
~#! tid=1221995341
Da sich das mit den Direktfahrern recht gut organisiert hat und der
KSC an dem Nachmittag spielt wird der Treffpunkt auf den Parkplatz
suedlich des Hauptbahnhofs verschoben.

Croft

-----------------------------------------------------------------------------



Stati Bochum (Humni, 18. Okt 2008, 14:10:49):
Huhu,

ja. Wir haben gerade Pause, da wir alle irgendwie nie koennen und dann noch
Spielemesse ist und morgen ist was kurzfristig... also...

Naechster Bochumer MG-Stati: 9.11. (ja, dauert noch was)
Ort: Mandragora, Bermuda-Dreieck
Zeit: 11 Uhr (Miril und ich kommen wie ueblich erst spaeter).

Alle kommen. Sonst fressen. Ich. Euch.

Humni

-----------------------------------------------------------------------------



Re^4: KA Sonder-Stati 18.10. (Rumata, 19. Okt 2008, 15:11:18):
~#! rn=Croft rt=1224239486 rg=treffen.bekanntmachungen
~#! tid=1221995341
FlaKuStammtisch Nachlese: Wenn Fonts Personen waeren
Hier der versprochene Link:
http://www.collegehumor.com/video:1823766

Rum**

-----------------------------------------------------------------------------



Weihnachtsmarkt Michelstadt 06.12.08 (Ark, 27. Okt 2008, 23:47:01):
Eben entstand mehr oder weniger spontan die Idee, am obigen Datum den
Michelstaedter Weihnachtsmarkt zu besuchen. Aus mehrfacher Erfahrung finde ich
den sehr heimelig, nicht groehlend laut und in sehr gemuetlicher Umgebung.
Soeben konnte ich weitgereiste Prominente aus Bochum zu einem Termin
ueberreden ... da waere es doch gelacht, wenn nicht noch weitere muntere
Gesellen und Weibsvolk dazustossen wuerden.
Empfehlenswert waere einmal zu uebernachten, da der Genuss von dampfendem
Alkohol und das Wegfahren aus dem suedlichen Odenwald als ein wenig
unverantwortlich vom dortigen Nachtwaechter angesehen werden wuerde.
Wer etwas mehr wissen will:
http://www.weihnachtsmarkt-deutschland.de/weihnachtsmarkt-michelstadt.html
Hotels gibt es einige, aber ich wuerde mich erstmal ueber Interessenten
freuen, bevor ich da mal auf Suche gehe. Ich zumindest fahre dann an dem Abend
nicht mehr heim :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Weihnachtsmarkt Michelstadt 06.12.08 (Ark, 29. Okt 2008, 21:53:13):
~#! rn=Ark rt=1225147621 rg=treffen.bekanntmachungen
~#! tid=1225147621
Im Moment haben sich 2 Hotels angeboten:
http://www.hotel-nibelungen.de/ und http://www.hotel.de/de.hotels/Michelstadt_
38065/City_Hotel_Mark_Michelstadt_201744/hotel.aspx
Wuerde mich anbieten, fuer 13.12. auf 14.12. zu reservieren, wenn wir uns auf
eins einigen koennen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Weihnachtsmarkt Michelstadt 06.12.08 (Gwen, 30. Okt 2008, 07:00:36):
~#! rn=Ark rt=1225313593 rg=treffen.bekanntmachungen
~#! tid=1225147621
Salut,
fuer die eine Uebernachtung taete es aus meiner Sicht auch was einfacheres und
guenstigeres.
Z.B. auch ne Pension.
Mein aktueller Favorit waer das Hotel am Kellerberg.

Macht Euch selbst ein Bild mit den Infos von der Touristeninfoseite:
http://www.michelstadt.de/Hotels-Pensionen-F.583.0.html
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

* http://www.hotel-nibelungen.de/
---------------------------------
Einzelzimmer: 49,00 - 54,00 Euro
Doppelzimmer: 75,00 - 79,00 Euro

Am Stadtrand  gelegenes Hotel, 15 Gehminuten zum Rathaus

* http://hotel-am-kellereiberg-michelstadt.de/lapok/nemet/hotel.htm
--------------------------------------------------------------------
Einzelzimmer ...... 38 - 53 Euro
Doppelzimmer ...... 55 - 72 Euro

In ruhiger Lage, 3 bis 4 Gehminuten vom historischen Rathaus entfernt.

* http://www.dreihasen.de/
--------------------------
Preisinfo: Anrufen/Email?

* http://www.cityhotel-markmichelstadt.de/
------------------------------------------
Einzelzimmer: 59,00 Euro
Doppelzimmer: 89,00 Euro
3-Bett-Zimmer: 105,00 Euro
4-Bett-Zimmer: 120,00 Euro
Babybett ist kostenlos ;)
Alle Preise inkl. Fruehstueck

In der Hotel-Kritik: 
- Nahe an der Bundesstrasse, laut; gibt anscheineind auch "ruhige" Zimmer zum
Parkplatz.
- Es gibt Raucherzimer; gebuchte Zimmer wurden als stark verraucht bemaengelt.
- 12 Min zum Stadtkern

* http://www.michelstaedter-hof.de/
-----------------------------------
Doppelzimmer:  44.00 bis  49.00 je Person
Einzelzimmer:  53.00 bis  73.00 je Person
Zusatzbetten:  
Kinder ab 7 - 14 Jahre  19.00 
Erwachsene  35.00  
inkl. Fruehstuecksbuffet


Ciao, Gwen.

-----------------------------------------------------------------------------



Mampf-Stati am 14. Dezember in Berlin (Gloinson,  2. Nov 2008, 13:59:04):
Huhu, naechster Fre(sss)*ack-Stammtisch im Xion findet statt am
Sonntag, den 14. Dezember.
Es ergibt sich eventuell sogar die Gelegenheit zur Neubesichtigung
von in Baumwolle und Zellstoff gefangenen Dunkelhobbits. Fuettern
des Aufsichtspersonals ist erlaubt.

- Xion Berlin
- http://xion-berlin.de/wegbeschreibung/so-finden-sie-uns.html
  (S Schoenhauser Allee)
- 14. Dezember, ab 10:30
- Name: "Morgengrauen"

Happa! Happa! Mampf! (*1)

Krischan

(*1) Koemmet in grossen Haeufchen.


-----------------------------------------------------------------------------



Re: Stati Bochum (Humni,  8. Nov 2008, 20:46:54):
~#! rn=Humni rt=1224331849 rg=treffen.bekanntmachungen
~#! tid=1224331849
So. Da das nun schon ne Weile her war mit der Ankuendigung schreib ichs
nochmal zur Erinnerung: Morgen Stati im Mandragora. Fressen, Saufen, Spass
haben. Oder so.

(Details siehe Ursprungspost).

Humni

-----------------------------------------------------------------------------



Fruehstuecks-Stati, 7.12.08, Bochum (Zesstra,  9. Nov 2008, 15:21:55):
Huhu,

damit wir es nicht vergessen: Das naechste Fruehstueck ist geplant fuer den
7.12.2008,
ebenfalls wieder im Mandragora
ab 11:00.

Also, kommet zuhauf. ;-)

Zesstra

-----------------------------------------------------------------------------



KA Stati 13.-20.11 (Croft, 11. Nov 2008, 15:21:09):
Ein kurzes Drachenintermezzo bevor dann naechste Woche wieder andere
Lokalitaeten ausgesucht werden.
13.11. Zum Drachen (www.zumdrachen.de)
20.11. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Stati 27.11.-11.12. (Croft, 21. Nov 2008, 09:13:55):
Und die naechsten Termine:
27.11. Der Grieche (www.taverne-der-grieche.de)
 4.12. Zum Drachen (www.zumdrachen.de)
11.12. Pizzaria Portobello (www.portobello-ettlingen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: Fruehstuecks-Stati, 7.12.08, Bochum (Zesstra,  4. Dez 2008, 21:37:29):
~#! rn=Zesstra rt=1226240515 rg=treffen.bekanntmachungen
~#! tid=1226240515
Da die Ankuendigung ja schon so lang her ist, mal ne kleine Erinnerung. ;-)
Naechstes Fruehstueck ist am 7.12. im Mandragora.

Zesstra

-----------------------------------------------------------------------------



KA Stati 18.12.-8.1. (Croft, 12. Dez 2008, 20:13:52):
18.12. Zum Drachen (www.zumdrachen.de)
 1. 1. Bochum (genaue Lokalitaet wird noch bekanntgegeben)
 8. 1. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Weihnachtsmarkt Essen, 20.12., tagsueber (Humni, 18. Dez 2008, 19:54:46):
Huhu,

Zesstra, Miril und meinereiner haben soeben beschlossen, den Weihnachtsmarkt
in Essen am Samstag, ab 14 uhr, unsicher zu machen (einige davon muessen
abends leider wieder frueher nach Hause). Treffpunkt ist entweder (wenn der
offen ist, ich glaub, der ist gesperrt) der obere HBF-Ausgang Richtung
Innenstadt oder sonst die Post da. Wenn noch jemand kommen mag, bitte ;-)

Solltet uns vielleicht vorher bescheidstossen, damit wir Euch nicht
uebersehen.

Humni

-----------------------------------------------------------------------------



Re: KA Stati 18.12.-8.1. (Croft, 29. Dez 2008, 22:10:30):
~#! rn=Croft rt=1229109232 rg=treffen.bekanntmachungen
~#! tid=1229109232
Der Sonderstati am 1.1. wird im Mandragora (www.mandragora-bochum.de) 
ab 19:30 stattfinden.  Bzgl Reservierungen bitte Bescheid geben.

Croft

-----------------------------------------------------------------------------



KA Stati 15.1.-29.1. (Croft,  9. Jan 2009, 14:44:10):
15.1. Jasmin (Marktstr. 16, Ettlingen)
22.1. Der Grieche (www.taverne-der-grieche.de)
29.1. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Fruehstueck, 25.01.2009 (Zesstra, 23. Jan 2009, 20:41:47):
Huhu,

mal wieder viel zu spaet (weiss nicht, warum wir so selten dran denken), aber
vielleicht kann ja jemand spontan:
Unser naechstes Fruehstueck ist am
Sonntag, 25.01.2009
im Mandragora in Bochum
ab 11:00, Ende offen.

Zesstra

-----------------------------------------------------------------------------



Stati FFM (Demonlord, 26. Jan 2009, 13:30:38):
Morsche Hesse!

Wie waers mal wieder mit einer kleinen Stati-Runde in FFM z.B. new-in-town.

Terminvorschlag: 10.02.2009

Wer hat Bock und Zeit?

Gruss
DL

-----------------------------------------------------------------------------



KA Stati 5.-12.2. (Croft, 30. Jan 2009, 19:53:51):
 5.2. Pizzaria Portobello (www.portobello-ettlingen.de)
12.2. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: Stati FFM (Ronda,  4. Feb 2009, 20:12:15):
~#! rn=Demonlord rt=1232973038 rg=treffen.bekanntmachungen
~#! tid=1232973038
Hi Demonlord,

gute Idee! Aber: Bock auf New-In-Town: ja. Zeit: ja - bin aber genau an dem
Abend in Berlin. Hmpf.

Ronda

-----------------------------------------------------------------------------



Re: Re: Stati FFM (Demonlord,  4. Feb 2009, 20:15:07):
~#! rn=Ronda rt=1233774735 rg=treffen.bekanntmachungen
~#! tid=1232973038
Ich kann leider zu diesem Tag auch nicht (kurzfristig nen anderen termin)
Vorschlag: 18.02.2009
Bei den anderen auch ok??

Gruss DL

-----------------------------------------------------------------------------



Re^3: Stati FFM (Cassandra,  5. Feb 2009, 11:58:33):
~#! rn=Demonlord rt=1233774907 rg=treffen.bekanntmachungen
~#! tid=1232973038
bei mir ok
Cassy

-----------------------------------------------------------------------------



Re^3: Stati FFM (Ark,  5. Feb 2009, 12:09:53):
~#! rn=Demonlord rt=1233774907 rg=treffen.bekanntmachungen
~#! tid=1232973038
Jo.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



KA Stati 19.2.-5.3. (Croft,  6. Feb 2009, 12:30:30):
19.2. Der Grieche (www.taverne-der-grieche.de)
26.2. El Taquito (www.el-taquito.de)
 5.3. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati Sonntag, 8.2. Bochum (Humni,  7. Feb 2009, 20:42:12):
Huhu,

morgen stati. Mandra. 11 Uhr. Wir erst 12. Wie immer.

Drache, keine Zeit.

-----------------------------------------------------------------------------



Re^3: Stati FFM (Demonlord, 12. Feb 2009, 21:34:36):
~#! rn=Demonlord rt=1233774907 rg=treffen.bekanntmachungen
~#! tid=1232973038
Morsche Hessen!


am 18.02.2009 ist hier ab 19:00 ein Tisch fuer uns reserviert (wieder die
gemuetliche Couch zum Abnicken auf der Empore):

http://home.new-in-town.de/

Bis dahin!
DL

-----------------------------------------------------------------------------



Fruehstuecks-Stati 22.2. Bochum (Zesstra, 18. Feb 2009, 21:51:55):
Huhu allerseits,

unser naechstes Fruehstueck findet statt am
22.2.
im Mandragora in Bochum,
ab 11:00

Zesstra

-----------------------------------------------------------------------------



Stati 15.3. Bochum (Vanhelsing,  8. Mar 2009, 22:40:35):
Ich als Neu-Duesseldorfer hab mal Lust nen Stati anzusagen, also mach ich das
auch mal.
Da das Mandragora sich bewaehrt hat, bleib ich auch dabei. ;)
Also
15.3.
Mandragora in Bochum
ab 11:00

Kommet Zuhauf

VH

-----------------------------------------------------------------------------



KA Stati 12.-19.3. (Croft, 10. Mar 2009, 12:03:56):
12.3. Zum Drachen (www.zumdrachen.de)
19.3. Pizzaria Portobello (www.portobello-ettlingen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA Stati 12.-19.3. (Croft, 12. Mar 2009, 21:13:19):
~#! rn=Croft rt=1236683036 rg=treffen.bekanntmachungen
~#! tid=1236683036
Der Stati naechste Woche wird kurzerhand verlegt.  Siehe naechstes Posting.

Croft

-----------------------------------------------------------------------------



KKA Statis 19.3.-9.4. (Croft, 12. Mar 2009, 21:19:08):
19.3. Substage (www.substage.de) [Corvus Corax Ticket erforderlich]
26.3. Pizzaria Portobello (www.portobello-ettlingen.de)
 2.4. Der Grieche (www.taverne-der-grieche.de)
 4.4. Klag (www.kulturrausch-gaggenau.de) [Stonkel Ticket erforderlich]
[SONDERSTATI]
 9.4. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 23.5. (Croft, 12. Mar 2009, 21:30:24):
Interessierte koennen sich schon mal den 23.5. freihalten.  Welche
Flammkuchenschmiede aufgesucht wird steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



KA Statis 16.4.-7.5. (Croft,  3. Apr 2009, 15:02:10):
16.4. El Taquito (www.el-taquito.de)
23.4. Osteria Calabrisella (www.osteria-calabrisella.de)
30.4. Zum Drachen (www.zumdrachen.de)
 7.5. Jasmin (Marktstr. 16, Ettlingen)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Bochum am 5.4. - Mandragora (Humni,  3. Apr 2009, 21:46:47):
Huhu,

wir wollen uns am Sonntag, dem 5.4., im Mandragora treffen. Dort werden wir
Fruehstueck verspeisen. Zu diesem Behufe werden wir uns um ... aeh... 11 Uhr
treffen. Also rechnet nicht vor 12-13 Uhr mit uns...

Humni

-----------------------------------------------------------------------------



Vorankuendigung Brunch 14. Juni Berlin (Gloinson,  6. Apr 2009, 20:40:14):
Moin,
Hunger, Hunger! Ist zwar lange hin, aber am 14. Juni waer doch mal
wieder ein perfektes (*1) Datum f|r einen Brunchsonntag in Berlin.
Es wird leicht sonnig mit knusprigen Kindern sein.

Ort koennte wieder Xion (http://www.xion-berlin.de/) bei der Stargarder
Str./Pappelallee sein, da er sowohl platz-, mengen- also auch
geschmackserprobt ist.

Wer Vorschlaege fuer andere Orte (wie eine All-you-can-eat-Sushi-Bar,
nachdem wir in DD wieder angefuettert worden sind) hat: immer her
damit.


-----------------------------------------------------------------------------



Stati Ruhrpott in Bochum, 19.4. (Humni, 18. Apr 2009, 19:07:55):

Huhu,

morgen (jaja, sehr kurzfristig, aber im Rhythmus) treffen wir uns im
Mandragora in Bochum zum brunchen und futtern. Es wird vermutlich irgendwer ab
11 Uhr da sein, wir aber erst fruehestens ab 12, wie immer.

Humni

-----------------------------------------------------------------------------



Stati Bochum, 3.5. (Zesstra, 30. Apr 2009, 17:40:36):
Am naechsten Sonntag sind wieder 2 Wochen rum, d.h. wir treffen uns 
ab 11:00
im Mandragora in Bochum
zum Fruehstueck/Mittagessen.

Kommet zuhauf!

Zesstra

-----------------------------------------------------------------------------



KA Statis 7.5.-28.5. (Croft,  5. Mai 2009, 22:24:46):
 7.5. Zum Drachen (www.zumdrachen.de)
14.5. Jasmin (Marktstr. 16, Ettlingen)
21.5. Der Grieche (www.taverne-der-grieche.de)
28.5. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA Statis 16.4.-7.5. (Croft,  5. Mai 2009, 22:25:20):
~#! rn=Croft rt=1238763730 rg=treffen.bekanntmachungen
~#! tid=1238763730
Der Stati diese Woche hat sich vom Jasmin in Richtung Drachen verschoben.
Jasmin ist erst naechste Woche dran.

Croft

-----------------------------------------------------------------------------



Bier ... aeh.. nee.. das andere B... Brunch! Bochum! Bandragora! (Humni, 16. Mai 2009, 15:18:55):
Huhu,

wir treffen uns morgen im Mandragora in Bochum zum brunchen. Andere werden
sicher schon ab 11 Uhr da sein. Wir werden wie ueblich wohl nicht vor 12 da
sein.

Humni

-----------------------------------------------------------------------------



Re: KA Statis 7.5.-28.5. (Croft, 18. Mai 2009, 10:23:17):
~#! rn=Croft rt=1241555086 rg=treffen.bekanntmachungen
~#! tid=1241555086
Da der Grieche momentan umbaut, wird sich das Lokal diese Woche aendern.
Naeheres folgt.

Croft

-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 23.5. (Croft, 18. Mai 2009, 12:43:15):
Sowas, da ist doch glatt schon der Artikel expired.  Nochmal: die ueblichen
Karlsruher Verdaechtigen schauen diesen Samstag ins Elsass um dort den
ein oder anderen Flammkuchen zu konsumieren.  Los gehts abends um 19:00
vor Ort (welcher genau wird morgen bekannt gegeben).  Vorrausichtlich
wird des die Auberge de la foret werden (wie schon letztes Mal).
Interessenten bitte bis Mittwoch zwecks Reservierung bei mir melden.

Croft

-----------------------------------------------------------------------------



Re: Re: KA goes Flammkuchen 23.5. (Croft, 18. Mai 2009, 17:55:09):
~#! rn=Croft rt=1242643395 rg=treffen.bekanntmachungen
~#! tid=1242643395
Das Lokal steht nun fest:

Auberge de la Foret
42, route de Strasbourg
67470 Seltz
http://aubergeforet.free.fr/ueberuns_d.htm

Wer direkt fahren will: Treffpunkt 19:00 vor Ort, die anderen treffen
sich in Karlsruhe um 18:00 um die Mitfahrgelegenheiten zu sortieren.

Croft

-----------------------------------------------------------------------------



Re: Re: KA Statis 7.5.-28.5. (Croft, 20. Mai 2009, 15:56:20):
~#! rn=Croft rt=1242634997 rg=treffen.bekanntmachungen
~#! tid=1241555086
Auf einzelnen Wunsch gehts in den Drachen ;-)

Croft

-----------------------------------------------------------------------------



Kieler Woche (Janne, 27. Mai 2009, 23:46:49):
Moin,

und wieder einmal steht die Kieler Woche ins Haus und damit wiederum auch der
obligatorische Kieler-Woche-Stammtisch am zweiten WE  vom 26. bis 28. Juni.

Unter kieler-woche.de oder unter foerdefluesterer.de findet Ihr das offizielle
Programm, welches wieder mit Strandgrillen zur Windjammerparade und Segeln
etc. erweitert werden wird. Interesse geweckt? Dann auf nach Kiel J

 Leinen los!
Janne


-----------------------------------------------------------------------------



KA Statis 4.6.-18.6. (Croft, 29. Mai 2009, 12:14:12):
 4.6. Schmalztoepfle (www.schmalztoepfle.de)
11.6. Brauhaus Moninger (www.brauhaus-moninger.de)
18.6. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Bochumer Stati (Humni, 31. Mai 2009, 00:00:02):
Ja, mal so richtig kurzfristig: Morgen (ich schreib um 23:59), 31.5.,
Mandragora, Brunch. Ab 11, wir werden wie ueblich nicht vor 12 da sein.

Humni

-----------------------------------------------------------------------------



Bochumer Stati 14.6. (Humni, 12. Jun 2009, 21:02:09):
Huhu,

am 14.6. sollte wieder Mandragora-Tag in Bochum sein, wie ueblich vermutlich
ab 11 Uhr. Ich bin jetzt mal ehrlich und sage, ich bin nicht sicher, ob ich
dann wirklich kann, da mich die Arbeit gerade auffuttert (ich sollte einfach
als Drache die Arbeit futtern - guter Ansatz - ich denk bis sonntag drueber
nach). Aber bekanntgeben wollte ich das doch, da vermutlich eh jemand da sein
wird.

Humni

-----------------------------------------------------------------------------



KA Stati 25.6. (Croft, 19. Jun 2009, 12:25:24):
25.6. Zum Drachen (www.zumdrachen.de)
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Bochumer Stati, 28.6. (Humni, 28. Jun 2009, 01:16:59):
Huhu,

auch in ein paar Stunden (ist ja schon nach 24 Uhr...) ist wieder Stati im
Mandragora. Wir werden dort Apfelschorle und .. hmm.. Cola trinken, genau, und
Brunchen. Losgehen wird das vermutlich um 11 Uhr, auch wenn diverse Leute erst
wieder spaeter ankommen.

Ein Drache, der zu diesen Leuten gehoert...

-----------------------------------------------------------------------------



KA Statis 2.7.-6.8. (Croft, 30. Jun 2009, 13:09:38):
Die naechsten Termine:
 2.7. Pizzaria Portobello (www.portobello-ettlingen.de)
 9.7. China City - Sushi Bar (Brauerstr. 40, im Filmpalast am ZKM)
16.7. Zum Drachen (www.zumdrachen.de)
23.7. Zum Drachen (www.zumdrachen.de)
30.7. Kilimandscharo (Karlstr. 100)
 6.8. FG Eins (www.fg-eins.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Bochum, 12.7., Mandragora (Humni, 30. Jun 2009, 18:05:30):
Huhu,

der naechste Stammtisch im Mandragora ist wohl am 12.7. Vermutlich wird er um
11 Uhr stattfinden. Vermutlich werden wieder Leute da sein, die mittlerweile
deutlich mehr WoW als MG spielen. Aber vielleicht sind auch MGler da.

Ich werde jedenfalls nicht da sein, da ich dann im Urlaub bin.

Aber da die letzten Statis so sehr kurzfristig angesetzt waren kommt hier mal
eine fruehere Meldung, auch wenn ich gar nicht da bin.

Humni

-----------------------------------------------------------------------------



KA Stati heute, 23.7. faellt aus (Gingko, 23. Jul 2009, 17:13:24):
nachdem wir fuer den heuten KA stati einen rasanten teilnehmerschwund
festgestellt haben, haben wir die anzahl mal bis heute abend interpoliert und
festgestellt, das dann null herauskommt. insofern sei der KA stati offiziell
zur MG-party verlegt.
gruesze Gingko.

-----------------------------------------------------------------------------



MampfStati in Berlin: 23. August, 20. September (Gloinson, 27. Jul 2009, 22:40:25):

Moin,

nachdem beim letzten Mal nur ein leckeres Kind dabei war, hoffe ich diese
Male auf ausfuehrlichere Verkoestigung mit Nachwuchs. So der Gesundheits-
zustand will.

Am 23. August wuerde ich nochmal in "Die Turnhalle" besuchen wollen, die
haben da einen grossen und tollen Aussenbereich, dafuer ist die Staffelung
des Nahrungsangebots zeitlich variant. Schlecht fuer 14-Uhr-Noch-Ganz-Viel-
Ei-Essen-Woller. Gut fuer Leute, die eh den ganzen StaTi anwesend sind.

Special Guest im September: Mesirii

Ort:  "Die Turnhalle"
      http://www.dieturnhalle.de/
      Naehe Ostkreuz
Zeit: 23. August, ab ~10 Uhr
      20. September, ab ~10 Uhr

Kommt und bestaunt den dicken Gnome, den duerren Guard und andere Wunder
der Langmuddigkeit!

Gloin


-----------------------------------------------------------------------------



KA Stati 30.7. (Gingko, 29. Jul 2009, 12:47:18):
da's letzte Woche ausfiel und dann dort Sommerpause ist, verlegen wir den
KA-Stati diese Woche nochmal in den Drachen (www.zumdrachen.de). Wie immer Do
20:00h.

-----------------------------------------------------------------------------



Mandragora 090809 (Miril,  6. Aug 2009, 16:55:52):
Huhu

am Sonntag, den 9.8. treffen wir uns wie gewohnt im Mandragora in Bochum
(Bermudadreieck). Beginn ist glaub ich fuer alles ausser uns 11 Uhr ;).

Kommet zuhauf!

Miril

-----------------------------------------------------------------------------



KA Statis 13.8.-20.8. (Croft,  9. Aug 2009, 13:48:44):
13.8. Sokrates (Welfenstrasse 18)
20.8. Pizzaria Portobello (www.portobello-ettlingen.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA Stati 20.08. (Gingko, 20. Aug 2009, 12:23:19):
Da das Portobelle noch bis 3.9. Urlaub macht, verlegen wir den Stammtisch ins
fast benachbarte Padellino, Seminarstr. 10, Ettlingen (www.padellino.de)

-----------------------------------------------------------------------------



Re: MampfStati in Berlin: 23. August, 20. September (Gloinson, 20. Aug 2009, 20:45:02):
~#! rn=Gloinson rt=1248727225 rg=treffen.bekanntmachungen
~#! tid=1248727225
Nur als Reminder:
- diesen Sonntag, 23. August
- "Die Turnhalle" Naehe S Ostkreuz
- dicker Gnome, duerrer Guard, Absonderlichkeiten der Mudwelt
- viel Essen


-----------------------------------------------------------------------------



KA Statis 27.8.-3.9. (Croft, 26. Aug 2009, 19:28:56):
Die naechsten zwei Termine:
27.8. Zum Drachen (www.zumdrachen.de)
 3.9. Brauhaus Moninger (www.brauhaus-moninger.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA Sonder-Stati 5.9. (Croft,  4. Sep 2009, 10:08:21):
Aus organisatorischen Gruenden leider erst jetzt spruchreif:
Morgen besuchen wir mal wieder Panos in seiner Seemuschel und zwar
ab 18:00. Webseite: http://www.av-buechenau.de/17503.html
und bei Google-Maps sieht man das Gebaeude unter
http://tinyurl.com/n7k2v

Croft

-----------------------------------------------------------------------------



KA Statis 10.-17.9. (Croft,  7. Sep 2009, 12:23:24):
Und wieder zwei Termine:
10.9. Zum Drachen (www.zumdrachen.de)
17.9. La Cage (www.lacage.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 31.10. (Croft,  7. Sep 2009, 12:25:39):
Interessierte koennen sich schon mal den 31.10. freihalten.  Welche
Flammkuchenschmiede aufgesucht wird steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



Re: Re: MampfStati in Berlin: 23. August, 20. September (Gloinson, 16. Sep 2009, 23:04:58):
~#! rn=Gloinson rt=1250793902 rg=treffen.bekanntmachungen
~#! tid=1248727225
Nur als Reminder II:
- diesen Sonntag, 20. September
- "Die Turnhalle" Naehe S Ostkreuz
- dicker Gnome, duerrer Guard, Absonderlichkeiten der Mudwelt
- viel Essen


-----------------------------------------------------------------------------



KA Statis 24.9.-15.10. (Croft, 18. Sep 2009, 13:17:09):
24. 9. Substage (www.substage.de) [D-A-D Ticket erforderlich]
 1.10. Zum Drachen (www.zumdrachen.de)
 8.10. Brauhaus Moninger (www.brauhaus-moninger.de)
15.10. Poseidon (Kriegsstrasse 218)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Bochum 20.9. Mandragora (Humni, 19. Sep 2009, 19:52:24):
Huhu,

wir treffen uns morgen, am 20.9., im Mandragora, zum Brunchen. Wie ueblich
vermutlich ab 11 Uhr, wobei wir erst wieder spaeter aufschlagen werden.

Humni

-----------------------------------------------------------------------------



Mampfstammtische Berlin: Oktober/November (Gloinson, 26. Sep 2009, 23:11:37):
Moin,

die naechsten zwei Stammtische sind:
- am Sonntag, den 25. Oktober
- am Samstag, den 28. November

Der erste Mampfstammtisch wird mit ziemlicher Sicherheit wieder in
der Turnhalle stattfinden (Naehe Ostkreuz). Sportbeutel bitte zu
Hause lassen, wir sind unter dicken Muddern.

Zum zweiten Termin, dem Samstag im November, gibt es schon jetzt
einen special guest: Martini. Ob wir an dem Tag brunchen, oder
gegen Nachmittag irgendwo anfangen zu futtern, um dann zu einem
StaTi ueberzugehen ist noch fuer Vorschlaege offen.

Kommet zuhauf, bestaunt den duerren Guard und den dicken ... Cakey!


-----------------------------------------------------------------------------



StuGa: 10. Oktober auf dem Cannstatter Wasen (Gloinson, 26. Sep 2009, 23:18:02):
Moin,

Guard, Martini und ich sind am 10. Oktober auf dem Wasen (mit anderen
Menschen). Falls noch wer in der Naehe ist und Durst hat, moege er doch mal
Laut geben.


-----------------------------------------------------------------------------



KA Statis 22.10.-5.11. (Croft, 16. Okt 2009, 09:49:47):
Die naechsten 3 Orte:
22.10. Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
29.10. Pizzeria Portobello (www.portobello-ettlingen.de)
 5.11. Zum Drachen (www.zumdrachen.de, neuer Paechter, Webseite nicht
aktuell)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA Statis 22.10.-5.11. (Gwen, 16. Okt 2009, 10:10:15):
~#! rn=Croft rt=1255679387 rg=treffen.bekanntmachungen
~#! tid=1255679387
Am 5.11. ist Amorpohis.
Gwen.

-----------------------------------------------------------------------------



Re: Re: KA Statis 22.10.-5.11. (Croft, 16. Okt 2009, 10:17:06):
~#! rn=Gwen rt=1255680615 rg=treffen.bekanntmachungen
~#! tid=1255679387
Korrekt :-)

Croft

-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 31.10. (Croft, 20. Okt 2009, 22:41:38):
~#! rn=Croft rt=1252319139 rg=treffen.bekanntmachungen
~#! tid=1252319139
So, nu steht die Schmiede fest:
Pizzeria Au Feu Rouge
7, route de Strasbourg
67470 Seltz
+33 3 88 86 82 86

Interessierte bitte bis zum 28.10. bei mir melden bzgl Reservierung
und Mfg-Organisierung.

Croft

-----------------------------------------------------------------------------



Re: Mampfstammtische Berlin: Oktober/November (Gloinson, 21. Okt 2009, 17:25:07):
~#! rn=Gloinson rt=1253999497 rg=treffen.bekanntmachungen
~#! tid=1253999497
Christian Georg Becker schrieb:
> > Moin,
> > 
> > die naechsten zwei Stammtische sind:
> > - am Sonntag, den 25. Oktober
> > - am Samstag, den 28. November
> > 
> > Der erste Mampfstammtisch wird mit ziemlicher Sicherheit wieder in
> > der Turnhalle stattfinden (Naehe Ostkreuz). Sportbeutel bitte zu
> > Hause lassen, wir sind unter dicken Muddern.

Reserviert ist dieses Mal sicher und zwar ab 10:30 auf den Namen Becker.
Draussen gesessen wird nur nach Sonneneruptionen einige Stunden vorher.

Der duerre Guard kommt gewiss, vielleicht lockt er sogar den dicken
Gnome! Koemmet zuhauf!

Gloin(son)


-----------------------------------------------------------------------------



Re: Re: KA goes Flammkuchen 31.10. (Croft, 28. Okt 2009, 18:55:45):
~#! rn=Croft rt=1256071298 rg=treffen.bekanntmachungen
~#! tid=1252319139
18:00 treffen am ueblichen Uniparkplatz bzw 18:45/19:00 dann vor Ort.
Mfgs jongliere ich noch.

Croft

-----------------------------------------------------------------------------



KA Statis 12.-26.11. (Croft,  8. Nov 2009, 16:37:17):
12.11. Kap (www.kap-ka.de)
19.11. Brauhaus Moninger (www.brauhaus-moninger.de)
26.11. Poseidon (Kriegsstrasse 218)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Braunschweig, 27.11. (Mcdee, 18. Nov 2009, 13:51:32):
Hallo,

es gibt endlich mal wieder einen Stammtisch in Braunschweig, und zwar
am
    27.11.2009
um
    19:30 Uhr
im
    Mephisto (Fallersleber Str. 35).

Gruesse, Dee

-----------------------------------------------------------------------------



Re: Mampfstammtische Berlin: Oktober/November (Gloinson, 23. Nov 2009, 22:15:59):
~#! rn=Gloinson rt=1253999497 rg=treffen.bekanntmachungen
~#! tid=1253999497
Moin,

seid hiermit an den Mampfstammtisch am kommenden Samstag, so ab 14 oder
15 Uhr erinnert.

Der Plan ist immer noch: Sushinese mit anschliessendem Cocktailiener oder
Cocktailzosen oder Cocktailboche und Open End.

Den schon vage festgelegten Ort im Umkreis der S Warschauer Strasse suche
und gebe ich am Donnerstag bekannt (*1). Kurzfristige Vorschlaege mit
Adressnennung an mich  ;) 

Gloinson

(*1) Dank einer nur geringen Verspaetung der Bahn (absehbar circa 4
Stunden) fahre ich lieber uebermorgen als heute nach Berlin zurueck.


-----------------------------------------------------------------------------



Re: Re: Mampfstammtische Berlin: Oktober/November (Gloinson, 26. Nov 2009, 14:49:20):
~#! rn=Gloinson rt=1259010959 rg=treffen.bekanntmachungen
~#! tid=1253999497
Moin2,

ich schlage hiermit vor:
- Samstag, ab 14 Uhr
- http://www.lecoqdor-berlin.de/
  - Boxhagener Strasse 27
    (U Frankfurter Tor oder Tram Niederbarnimstrasse)

Das ist ein Sushithainese (also gibt es sowohl Sushi als auch Thai-Food
mit Gebrutzeltem) mit groesseren Baenken im dritten Raum.
Wenn wir irgendwann fertiggemampft haben, koennen wir in irgend einen
Cocktailladen suedlicher/an der Simon-Dach-Strasse umziehen.


-----------------------------------------------------------------------------



KA Stati 3.12. (Croft, 26. Nov 2009, 22:26:33):
3.12. Pizzaria Portobello (www.portobello-ettlingen.de)
Weitere Termine folgen dann naechste Woche.  Es gibt noch einen Termin
fuer einen (Sonder-)Stati mit Besuch in Panos Schokoladenladen und dem
Weihnachtsmarkt zu organisieren.

Croft

-----------------------------------------------------------------------------



6.12. Fruehstuck in Bochum (Zesstra,  3. Dez 2009, 18:43:09):
Huhu,

unser naechstes Fruehstueck im Mandragora in Bochum findet kommenden Sonntag
statt:
6.12., ab 11:00

Diesmal kommen auch wieder einige auswaertige Gaeste. :-)

Zesstra

-----------------------------------------------------------------------------



Weihnachtsmarkt (Miril,  3. Dez 2009, 20:11:46):
Bevor wir uns am Sonntag morgen im Mandra treffen werden, wollen wir noch
abends gepflegt Met und Gluehwein trinken gehen. Dazu wollen wir uns am
Samstag, den 5.12.2009 in Essen auf dem Weihnachtsmarkt treffen.
Praktischerweise hat dieser an diesem Samstag bis 24 Uhr geoeffnet. 
Zwecks Treffpunkt schlage ich vor, mit mir oder Humni oder Zesstra
Handynummern auszutauschen, das ist vermutlich das einfachste. 

Miril

-----------------------------------------------------------------------------



KA Stati 10.12. (Croft,  4. Dez 2009, 22:16:01):
10.12. Marianne's Flammkuchen (www.mariannes-flammkuchen.de)
Mal eine Flammkuchenschmiede in KA ausprobieren.  Beginn wie immer
um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Wilhelmshaven: 29.12. (Zesstra,  7. Dez 2009, 20:04:13):
Huhu,

mal eine ungewoehnliche Ankuendigung von mir: ein Nord(-West)-Stammtisch.
Und zwar sind div. Mudder ueber Silvester in Hooksiel anzutreffen. In diesem
Zeitraum wollen wir einen Stati machen und zwar vorraussichtlich am
Abend des 29.12.2009
im Anno 1300 in Wilhelmshaven.

Details folgen. ;-)

Zesstra

-----------------------------------------------------------------------------



KA Stati 17.12. (Croft, 11. Dez 2009, 14:56:36):
17.12. El Taquito (www.el-taquito.de)
Beginn wie immer um 20:00.  Um Vorankuendigung wird zwecks Reservierung
gebeten.

Croft

-----------------------------------------------------------------------------



Berliner 3. Advents-StaTi (Gloinson, 12. Dez 2009, 00:49:39):

Moin,

ganz spontan wegen Anwesenheit der Anna: ein Mampfstammtisch / Brunch am
Sonntag, den 13. Dezember um 10-11 Uhr in der Turnhalle.

Koemmet zuhauf und lasset euch mit nichtmarzipanhaltigen Sachen abfuettern!

Krischan
aka Gloinson


-----------------------------------------------------------------------------



Re: Berliner 3. Advents-StaTi (Gloinson, 12. Dez 2009, 04:28:58):
~#! rn=Gloinson rt=1260575379 rg=treffen.bekanntmachungen
~#! tid=1260575379
PS: Samstag Abend ab spaetestens 21 Uhr im Aufsturz oder nebenan ein
SonderStati. Nebenan hiesse: Salsa. Melden ggf. bei 01577 159 8421


-----------------------------------------------------------------------------



Braunschweig, 18.12. (Derin, 16. Dez 2009, 11:24:02):
Huhu,

am Freitag, dem 18.12.2009, findet ab 19:30 im Dialog der Braunschweiger
MG-Stammtisch statt. (Im Tiger war es letztes Mal doch ziemlich laut.)
Das Dialog befindet sich auf der Ecke Ring/Hans-Sommer-Strasse.

Bis Freitag,
Derin.

-----------------------------------------------------------------------------



Re: Braunschweig, 18.12. (Mcdee, 17. Dez 2009, 11:07:14):
~#! rn=Derin rt=1260959042 rg=treffen.bekanntmachungen
~#! tid=1260959042
Zwecks Absagen fuer morgen faellt der Stammtisch aus. Wir suchen nach einem
Alternativtermin.

Dee

-----------------------------------------------------------------------------



KA Stati 7.1. (Croft, 18. Dez 2009, 11:15:39):
7.1. Brauhaus Moninger (www.brauhaus-moninger.de)
Beginn wie immer um 20:00.  Heiligabend und Silvester fallen aus
offensichtlichen Gruenden aus ;-)

Croft

-----------------------------------------------------------------------------



Re: Stati in Wilhelmshaven: 29.12. (Vanion, 22. Dez 2009, 20:03:10):
~#! rn=Zesstra rt=1260212653 rg=treffen.bekanntmachungen
~#! tid=1260212653
Tisch ist ab 20:00 unter dem Kuerzel MorgenGrauen bestellt. Da ich 12 Plaetze
im Nichtraucher-Bereich bestellt habe, und das Anno nicht soo gross ist kann
man unseren Tisch leicht erkennen :) Es ist der, der da steht.

Zur Vorab-Info: http://www.anno-1300.de/

Ich freu mich schon jetzt auf den Nordlicht-Stati :)

V*

-----------------------------------------------------------------------------



KA Statis 14.1.-4.2. (Croft,  7. Jan 2010, 23:28:46):
14.1. San Marco San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
21.1. Pizzaria Portobello (www.portobello-ettlingen.de)
28.1. Titanic (www.ticka.net)
 4.2. Marianne's Flammkuchen (www.mariannes-flammkuchen.de)

Beginn wie immer um 20:00.  Um Vorankuendigung wird zwecks Reservierung
gebeten.

Croft

-----------------------------------------------------------------------------



Fruehstueck Mandragora 17.1.2010 (Zesstra,  9. Jan 2010, 16:19:20):
Huhu,

nach der Weihnachts- und Silvesterpause waere eigentlich morgen das naechste
Fruehstueck im Mandra gewesen. Aufgrund des unsicheren Wetters verschieben wir
das jedoch um eine Woche, d.h. naechstes Fruehstueck im Mandra ist am:
17.1.2010, ab 11:00
im Mandragora in Bochum

Zesstra

-----------------------------------------------------------------------------



Mampfstammtische 13. Februar und 14. Maerz in Berlin (Gloinson, 23. Jan 2010, 00:04:35):
Huhu,

nachdem der Januar fuer eine allgemeine Verdauungspause mal frei war, nun neue
Termine zum Treffen und Brunchen:

Wir schwenken fuer den Winter mal trotz leichtem Mehr-Leckerfaktor der
Turnhalle auf das gemuetlichere Xion zurueck, da im Winter zudem
kinderkompatibler. Und manchmal kommen ja Eltern mit leckeren Kinder.
- http://xion-berlin.de/
- Naehe S Schoenhauser Allee, Tram 12 Stargarder Strasse
- Pappelallee 56, 10437 Berlin

Termine:
 13. Februar 2010: Fruehstuecksbuffet Samstag (Guard-kompatibel)
 14. Maerz 2010:   Brunch Sonntag (Special Guest: Martini)

Treffen jeweils ab 10:30 Uhr.

Koemmet zuhauf, es gibt komische Menschen zu bestaunen, man darf Gabylon ggf.
waschen und mit Guard um die Wette essen!

Gloin(son)

-----------------------------------------------------------------------------



Re: Mampfstammtische 13. Februar und 14. Maerz in Berlin (Gwen, 23. Jan 2010, 08:39:55):
~#! rn=Gloinson rt=1264201475 rg=treffen.bekanntmachungen
~#! tid=1264201475
Warum hab ich da nun Kampfstammtische gelesen?
Gwen.

-----------------------------------------------------------------------------



KA Statis 11.2.-25.3. (Croft,  4. Feb 2010, 23:01:46):
11.2. Brauhaus Moninger (www.brauhaus-moninger.de)
18.2. Jasmin (Marktstr. 16, Ettlingen)
25.2. Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
 4.3. Poseidon (Kriegsstrasse 218)
11.3. El Taquito (www.el-taquito.de)
18.3. San Marco San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
25.3. Pizzaria Portobello (www.portobello-ettlingen.de)

Beginn wie immer um 20:00.  Um Vorankuendigung wird zwecks Reservierung
gebeten.

Croft

-----------------------------------------------------------------------------



Re: Re: Mampfstammtische 13. Februar und 14. Maerz in Berlin (Darklor, 28. Feb 2010, 21:31:08):
~#! rn=Gwen rt=1264232395 rg=treffen.bekanntmachungen
~#! tid=1264201475
Oh, glatt verpasst - aber da hab ich wahrscheinlich sowieso noch geschlafen ;)

Darklor

-----------------------------------------------------------------------------



Re: Mampfstammtische 13. Februar und 14. Maerz in Berlin (Gloinson, 11. Mar 2010, 11:27:50):
~#! rn=Gloinson rt=1264201475 rg=treffen.bekanntmachungen
~#! tid=1264201475
> - http://xion-berlin.de/
> - Naehe S Schoenhauser Allee, Tram 12 Stargarder Strasse
> - Pappelallee 56, 10437 Berlin
> 
> Termine:
>  14. Maerz 2010:   Brunch Sonntag (Special Guest: Martini)
> 
> Koemmet zuhauf, es gibt komische Menschen zu bestaunen, man darf Gabylon
> ggf. waschen und mit Guard um die Wette essen!

Moin,

hiermit eine Erinnerung. Reserviert ist ab 10:30 auf Becker.

Bedingt durch eine Hochzeit am Vortag koennen wir mindestens
die Special Guests Martini, Maharet und Mesirii begruessen.

Gabylon kann nicht gewaschen werden, weil er ein Suppen- 
espektive Xion-Kasper ist und rummaekelt :P


-----------------------------------------------------------------------------



KA Statis 1.-29.4. (Croft, 26. Mar 2010, 07:54:37):
Mal wieder ein paar neue Sachen probieren:
 1.4. K33 (Kreuzstrasse 33)
 8.4. Rim Wang (www.rim-wang.de)
15.4. Kraeuterkueche (www.kraeuterkueche-karlsruhe.de)
22.4. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
29.4. Wacht am Rhein (www.wachtamrhein-karlsruhe.de)

Beginn wie immer um 20:00.  Um Vorankuendigung wird zwecks Reservierung
gebeten.

Croft

-----------------------------------------------------------------------------



KA Statis 8.4.-13.5. (Croft,  3. Apr 2010, 19:45:02):
Kleines Update:

 8.4. Rim Wang (www.rim-wang.de)
15.4. Kraeuterkueche (www.kraeuterkueche-karlsruhe.de)
22.4. Substage (www.substage.de) [Corvus Corax Ticket erforderlich]
29.4. Wacht am Rhein (www.wachtamrhein-karlsruhe.de)
 6.5. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
13.5. Brauhaus Moninger (www.brauhaus-moninger.de)

Beginn wie immer um 20:00.  Um Vorankuendigung wird zwecks Reservierung
gebeten.

Croft

-----------------------------------------------------------------------------



Bochum trifft sich auch mal wieder... 18.4. (Humni, 16. Apr 2010, 16:55:54):
Am 18.4. trifft sich der Mandragora-Brunch-Stammtisch wieder. Vermutlich sind
ab 11 Uhr Leute vor Ort, ich aber nicht. Kommet zu Hauf!

Humni

-----------------------------------------------------------------------------



Re: Bochum trifft sich auch mal wieder... 18.4. (Humni, 16. Apr 2010, 22:11:08):
~#! rn=Humni rt=1271429754 rg=treffen.bekanntmachungen
~#! tid=1271429754
Korrektur.

Also: Der naechste regulaere Stati ist erst eine Woche spaeter. Da hab ich die
Termine verbaselt.

Darum mag ich diese Woche nicht versprechen, ob da viele Leute sind.
Vermutlich (!) werden 3 Leute da sein. Aber ich mag das nun nicht mehr
versprechen.

Humni

-----------------------------------------------------------------------------



Stati in Bochum am 25.4. (Humni, 24. Apr 2010, 17:46:15):
Huhu,

jetzt aber richtig: Morgen, am 25.4., treffen sich sicher wieder Mudder und
WoW-Spieler im Mandragora. Vermutlich ab 11, auch wenn ich noch nicht so frueh
da sein werde.

Humni

-----------------------------------------------------------------------------



KA Sonder-Stati 4.7. (Croft, 13. Mai 2010, 22:41:07):
Es ist mal wieder soweit: die ueblichen Karlsruher Verdaechtigen
besuchen ihren Ex-Wirt in der Seemuschel.  Das Ganze wird mittags
stattfinden und die Anreise wird bei gutem Wetter zum Teil mit dem Rad
erfolgen.  Und als Termin ist Sonntag der 4. Juli angepeilt.
http://www.av-buechenau.de/17503.html
respektive
http://tinyurl.com/n7k2v

Croft

-----------------------------------------------------------------------------



KA Statis 20.5.-17.6. (Croft, 14. Mai 2010, 16:31:18):
Die naechsten Lokale:
20.5. Athen Palast (www.athen-palast-ka.de)
27.5. Pizzaria Portobello (www.portobello-ettlingen.de)
 3.6. El Tequila (el-tequila.de)
10.6. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
17.6. La Cage (www.lacage.de)

Beginn wie immer um 20:00.  Um Vorankuendigung wird zwecks Reservierung
gebeten.

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum, 23.5. (Zesstra, 22. Mai 2010, 11:36:03):
Mal wieder eine sehr kurzfristige Ankuendigung (ob wir das jemals beser
hinkriegen?): Unser naechster Fruehstuecks-Stati ist morgen:
Sonntag, 23.5.
ab 11:00
im Mandragora, Bochum.

Viele Spass!

Zesstra

-----------------------------------------------------------------------------



Mampfstammstisch Berlin 6.6. (Gloinson, 24. Mai 2010, 14:48:50):
Moin,

April und Mai waren so aufregend und mit so tollem Wetter versehen, dass wir
glatt das Brunchen vergessen haben. Das holen wir am 6.6.2010 nach.

Reserviert ist in
- Die Turnhalle (http://www.dieturnhalle.de/)
- HolteistraCe 6
ab 10:30 auf den Namen Becker.

Der Ort ist bei gutem Wetter hervorragend kinderkompatibel, bei schlechtem
Wetter muss man auf die Zwerge drin halt ein wenig aufpassen.
Leckerleckermampfmampf!

Kommt in grossen Mengen, die Mudder kommen inzwischen ja auch nur noch in
groCen Portionen.

Gloinson

-----------------------------------------------------------------------------



KA Statis 24.6.-15.7. (Croft, 18. Jun 2010, 18:30:41):
Die naechsten Lokalitaeten:
24.6. Critisize (www.criti.de)
 1.7. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
 8.7. El Tequila (www.el-tequila.de)
15.7. Titanic (www.ticka.net)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum: 20.6. und 4.7. (Zesstra, 18. Jun 2010, 18:35:06):
Huhu,

diesmal eine fruehe und eine spaete Bekanntmachung. ;-)
Das naechste Fruehstueck (sogar mit Gast aus dem Norden) ist 
am 20.6. ab 11:00 im Mandragora.

Danach treffen wir uns 
am 4.7., ebenfalls ab 11:00 im Mandragora.
Einige von uns fahren dieses Jahr zum WoA. Wir wollen einige Planungen zu dem
Thema anstellen, wie wir gemeinsam anreisen, damit wir auch gemeinsam zelten.
D.h. es handelt sich damit sozusagen um ein WoA-Vorbereitungsfruehstueck. ;-)
(Wer sich uns anschliessen will: das waere eine Gelegenheit...)

Zesstra

-----------------------------------------------------------------------------



Re: KA Sonder-Stati 4.7. (Croft, 25. Jun 2010, 08:26:49):
~#! rn=Croft rt=1273783267 rg=treffen.bekanntmachungen
~#! tid=1273783267
Wegen Terminkollisionen wird der Termin verschoben.  Ersatztermin wird
in Baelde ausgemurmelt werden.

Croft

-----------------------------------------------------------------------------



Heinerfest Darmstadt (Ark, 27. Jun 2010, 11:26:54):
So, es ist wieder soweit, das drittgroesste Volksfest in Deutschland beginnt
am 1.7 und laeuft bis 5.7. In freudiger Erwartung des moeglichen deutschen
Viertelfinals am Freitag, den 2.7. schlage ich einen Stati am Donnerstag, den
1.7. vor. Ich bin mir nicht ganz sicher, ob es da sinnvolle Public Viewing
Moeglichkeiten geben wird, und dann ist immer noch die Frage, ob wer kommt,
deshalb der 1.7.
Meinungen? Buuuhs? Aenderungsvorschlaege?


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Heinerfest Darmstadt (Del, 27. Jun 2010, 20:26:01):
~#! rn=Ark rt=1277630814 rg=treffen.bekanntmachungen
~#! tid=1277630814
Dass das Spiel am 3.7. ist, waere ja nun geklaert. Ich plaediere daher voellig
kontraer zu Dir, liebster Ark, fuer ein Public Viewing mit anschliessendem
Heinerfestbesuch an eben jenem Samstag. :-) Treffen rechtzeitig, um einen
guten Platz zu ergattern und nach dem Spiel den Sieg feiern oder den Frust
runterspuelen. :-)
Meine Meinung, mein Aenderungsvorschlag aber ganz ohne Buuuuhs :-)
Die NuDel

-----------------------------------------------------------------------------



Re: Re: Heinerfest Darmstadt (Cutter, 27. Jun 2010, 20:36:54):
~#! rn=Del rt=1277663161 rg=treffen.bekanntmachungen
~#! tid=1277630814
Hoi.
Ich plaediere fuer FR 2.7. oder SA 3.7. mit public viewing. Ich reise dann an.
Auch ganz ohne Buuuhs. auch wenn Ark die WM verpeilt hat.

-----------------------------------------------------------------------------



Re: Re: Heinerfest Darmstadt (Ark, 27. Jun 2010, 22:59:46):
~#! rn=Del rt=1277663161 rg=treffen.bekanntmachungen
~#! tid=1277630814
Koennt ihr machen, aber Samstag bin ich anderweitig verbucht.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



KA Statis 15.7.-29.7. (Croft, 10. Jul 2010, 10:10:30):
15.7. Titanic (www.ticka.net)
22.7. Brauhaus Moninger (www.brauhaus-moninger.de)
29.7. Yangtse (Hauptstrasse 137, 76344 Eggenstein-Leopoldshafen)
Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Braunschweig am 26.7. (Derin, 16. Jul 2010, 00:19:32):
Huhu,

am 26.7. treffen wir uns ab 21:00 im Mephisto, Fallersleber Str. 35. Wir sagen
an der Theke Bescheid, so dass Fragen nach dem Morgengrauen-Stammtisch zu uns
fuehren sollten. Kommet zuhauf. :)

Bis bald,
Derin.

-----------------------------------------------------------------------------



Stammtisch in Nuernberg am 27.7. 19:00 (Marcus, 24. Jul 2010, 11:58:21):
Hi!

Da derzeit Gwen und Va* in Franken weilen und naechste Woche in Nuernberg
sind, hat Gwen vorgeschlagen einen Stammtisch zu veranstalten.

Wo:   Irish Castle ( http://www.irish-castle.com/index_old.html )
Wann: Dienstag, 27.7. ; 19:00

Derzeit geplante Anwesenheit: Gwen, Vanir, Bambi, Marcus

[Das Irish Castle befindet sich direkt am Plaerrer in Nuernberg, es gibt keine
Live Musik am Dienstag, sprich es ist ruhiger ;) Es gibt ausser irischen
Bieren
auch Landbiere und Pub Food (siehe Webseite).]

Ciao, Marcus

-----------------------------------------------------------------------------



KA Statis 29.7.-26.8. (Croft, 28. Jul 2010, 14:10:26):
29.7. Yangtse (Hagsfelder Weg 15, 76344 Eggenstein-Leopoldshafen)
 5.8. Restaurant Delphi (www.restaurant-delphi.com)
12.8. FG1 (www.fg-eins.de)
19.8. Critisize (www.criti.de)
26.8. Pizzaria Portobello (www.portobello-ettlingen.de)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati in Braunschweig am 16.8. (Shaeena, 13. Aug 2010, 00:38:00):
Huhu,

am Montag, dem 16.8. ab 21.15 Uhr findet ein Gladiopolis-Stati
in Braunschweig statt. Der genaue Veranstaltungsort wird euch
bei der verbindlichen Anmeldung mitgeteilt ;-)

Shaeena

-----------------------------------------------------------------------------



Re: KA Statis 29.7.-26.8. (Croft, 25. Aug 2010, 17:46:30):
~#! rn=Croft rt=1280319026 rg=treffen.bekanntmachungen
~#! tid=1280319026
Da das Portobello morgen wegen Urlaub geschlossen ist, geht es spontan
ins El Tequila.

Croft

-----------------------------------------------------------------------------



Stati in Braunschweig am 30.8. (Shaeena, 25. Aug 2010, 22:35:53):
Hallo,

am 30.8. gibt es schon wieder einen Stati in Braunschweig.
Und zwar in der Kneipe "Charly's Tiger" (http://www.charlys-tiger.de/).
Start ist gegen 21 Uhr, Ende wenn wir keine Lust mehr haben.

Shaeena

-----------------------------------------------------------------------------



KA Statis 2.-30.9. (Croft, 27. Aug 2010, 15:28:25):
 2.9. Sol i Luna (www.soliluna-durlach.de)
 9.9. Pizzaria Portobello (www.portobello-ettlingen.de)
16.9. Restaurant Delphi (www.restaurant-delphi.com)
23.9. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
30.9. Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA Statis 2.-30.9. (Croft,  2. Sep 2010, 11:14:11):
~#! rn=Croft rt=1282915705 rg=treffen.bekanntmachungen
~#! tid=1282915705
Da das Sol i Luna Betriebsferien macht, wechseln wir kurzerhand ins
Brauhaus Moninger (www.brauhaus-moninger.de)

Croft

-----------------------------------------------------------------------------



KA Sonder-Stati 19.9. (Croft,  6. Sep 2010, 16:53:18):
Es ist mal wieder Zeit Panos in seiner Seemuschel zu besuchen.
Als Termin wurde Sonntag der 19.9. auserkoren und wir werden
uns mittags gegen 13:00 vor Ort treffen.

Webseite der Seemuschel:
http://www.av-buechenau.de/17503.html
und bei Google-Maps sieht man das Gebaeude unter
http://tinyurl.com/n7k2v

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 27.11. (Croft,  6. Sep 2010, 17:12:39):
Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am
27.11. freihalten.  Ort steht noch nicht fest, aber vermutlich
besuchen wir mal wieder die Alte Muehle.

Croft

-----------------------------------------------------------------------------



MudStammtisch Berlin: 3. Oktokber (Gloinson, 21. Sep 2010, 10:34:28):
Wir schwenken fuer den Herbst mal trotz leichtem Mehr-Leckerfaktor der
Turnhalle auf das gemuetlichere Xion zurueck, da bei Kaelte zudem
kinderkompatibler. Und manchmal kommen ja Eltern mit leckeren Kinder.
- http://xion-berlin.de/
- Naehe S Schoenhauser Allee, Tram 12 Stargarder Strasse
- Pappelallee 56, 10437 Berlin
- (wenn euch der Text bekannt vorkommt: Absicht!)

Termin:- 3. Oktober ab 10:30 Uhr, auf "Morgengrauen" (*2)

Koemmet zuhauf, es gibt komische Menschen zu bestaunen, man darf Martini
anfassen und vielleicht sogar Anna kaemmen!

Gloin(son)

(*2) Wir werden schon erwartet ;)


-----------------------------------------------------------------------------



KA Statis 7.-14.10. (Croft,  4. Okt 2010, 17:18:46):
 7.10. El Tequila (www.el-tequila.de)
14.10. Pizzaria Portobello (www.portobello-ettlingen.de)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Braunschweig 11.10. (Derin,  5. Okt 2010, 08:58:22):
Huhu,

am 11.10. findet abermals der beliebte Braunschweiger Stammtisch im
"Charlies Tiger" in der Wilhelm-Bode-Strasse statt. Um 19:00 gehts los,
Ende ist offen.

Speisekarte, Lage usw.: http://www.charlys-tiger.de/


Derin.

-----------------------------------------------------------------------------



KA Statis 21.10.-18.11. (Croft, 15. Okt 2010, 09:59:35):
21.10. FG1 (www.fg-eins.de)
28.10. Restaurant Delphi (www.restaurant-delphi.com)
 4.11. Brauhaus Moninger (www.brauhaus-moninger.de)
11.11. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
18.11. Jasmin (Marktstr. 16, Ettlingen)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Braunschweig 5.11. (Shaeena, 31. Okt 2010, 12:08:28):
Huhu,

es gibt nen Stati, am 5.11., in Braunschweig.

Uhrzeit? Weiss Elberet.
Ort? Weiss McDee.

Wer hat das entschieden? Der Chef.
Wer kuendigt? Ich.

Gruss, Shaeena

PS: Derin kommt auch.

-----------------------------------------------------------------------------



Re: KA Statis 21.10.-18.11. (Croft, 31. Okt 2010, 20:02:14):
~#! rn=Croft rt=1287129575 rg=treffen.bekanntmachungen
~#! tid=1287129575
Auf Wunsch einer einzelnen Nicht-Mudderin werden die naechsten
zwei Termine getauscht:

 4.11. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
11.11. Brauhaus Moninger (www.brauhaus-moninger.de)
18.11. Jasmin (Marktstr. 16, Ettlingen)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 27.11. (Croft, 11. Nov 2010, 23:00:32):
Repost da Expire:
Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am
27.11. freihalten.  Ort steht noch nicht fest, aber vermutlich
besuchen wir mal wieder die Alte Muehle.

Croft

-----------------------------------------------------------------------------



KA Statis 25.11.-23.12. (Croft, 19. Nov 2010, 10:36:00):
25.11.10 Restaurant Delphi (www.restaurant-delphi.com)
02.12.10 Pizzaria Portobello (www.portobello-ettlingen.de)
09.12.10 San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
16.12.10 FG1 (www.fg-eins.de)
23.12.10 Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Braunschweig 3.12. (Shaeena, 21. Nov 2010, 22:05:26):
Huhu,

am 3.12. ist wieder Stati in Braunschweig.
Wer nicht kommt, ist selber schuld.

Gruss, Shaeena


-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 27.11. (Croft, 23. Nov 2010, 17:48:51):
~#! rn=Croft rt=1289512832 rg=treffen.bekanntmachungen
~#! tid=1289512832
Da die Muehle doch schon voller ist geht es mal wieder an eine andere
bekannte Stelle:
Auberge de la Foret
42, route de Strasbourg
67470 Seltz
http://aubergeforet.free.fr/ueberuns_d.htm

Treffen vor Ort um 19:00 und entsprechend gen 18:00 in KA zum passend
auf die Autos sortieren.

Croft

-----------------------------------------------------------------------------



Mudmampfstammtisch 5. Dezember Berlin (Gloinson, 29. Nov 2010, 12:19:36):
Hallo,

lasst uns mal noch schnell einen weihnachtlichen Adventsmudbrunch einschieben,
bevor das Jahr vorbei ist.

- http://xion-berlin.de/
- Naehe S Schoenhauser Allee, Tram 12 Stargarder Strasse
- Pappelallee 56, 10437 Berlin
- (wenn euch der Text bekannt vorkommt: Absicht!)

Termin: 5. Dezember ab 10:30 Uhr, auf "Morgengrauen" 

Dieses Mal (noch) keine Spezialgaeste. Aber da der MUD-Brunch vor dem
naechsten WoW-Release ist, koennen sich alle von fern und nah staerken und
ausruhen kommen.

Krischan aka Gloin(son)


-----------------------------------------------------------------------------



KA Statis 16.12.-6.1. (Croft, 13. Dez 2010, 19:29:10):
16.12.10 FG1 (www.fg-eins.de)
23.12.10 Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
30.12.10 faellt aus
 6. 1.11 San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum 19.12.2010 (Zesstra, 13. Dez 2010, 19:32:56):
Da in den letzten Wochen tatsaechlich mal Leute nach Fruehstuecksterminen
gefragt haben, versuch mal, unsere Ankuendigungen wieder aufzunehmen. ;-)

Unser naechstes Fruehstueck (und letztes fuer dieses Jahr) werden wir wie
immer im Mandragora in Bochum geniessen und zwar am 19.12.2010 ab 11:00.

Das erste im neuen Jahr wird vermutlich am 9.1.2011 am gleichen Ort sein.

Kommet zuhauf!

Zesstra

-----------------------------------------------------------------------------



Stati Braunschweig 7.1. (Shaeena,  1. Jan 2011, 23:42:44):
Huhu,

gibt mal wieder nen Stati in Braunschweig. Und zwar

am 7.1.
ab 19 Uhr
im Dialog (http://www.restaurant-dialog.de/).

Und diesmal bitte fruehzeitiger absagen, wer dem Termin
schon zugestimmt hat und dann doch keine Lust. :P

Wer noch nicht zugestimmt hat, darf das gern noch tun. ;)

Shaeena

-----------------------------------------------------------------------------



KA Statis 13.1.-17.2. (Croft,  7. Jan 2011, 09:41:10):
13.1.11 Titanic (www.ticka.net)
20.1.11 El Taquito (www.el-taquito.de)
27.1.11 Marianne's Flammkuchen (www.mariannes-flammkuchen.de)
 3.2.11 Restaurant Delphi (www.restaurant-delphi.com)
10.2.11 Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
17.2.11 Pizzaria Portobello (www.portobello-ettlingen.de)

Begin wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 9.1. - ACHTUNG! NEUER ORT! (Humni,  7. Jan 2011, 09:43:30):
Huhu,

nein, wir sind nicht mit dem alten Ort, dem Mandragora, unzufrieden. Und
sicher werden wir da auch spaeter mal wieder fruehstuecken. Nur...

Wir wollen ihm noch eine Chance geben. Angeblich gibt es jetzt neue Besitzer,
und wir waren ja auch seit Jahren nicht da.

Ort: Vier Winde, Bochum
Datum: 9.1.2011
Zeit: 20 Uhr

Humni

-----------------------------------------------------------------------------



Re: KA Statis 13.1.-17.2. (Gwen,  7. Jan 2011, 09:44:04):
~#! rn=Croft rt=1294389670 rg=treffen.bekanntmachungen
~#! tid=1294389670
Und wo ist die spezielle Einladung fuer Vanion?
SCNR Gwen.

-----------------------------------------------------------------------------



Re: Stati in Bochum am 9.1. - ACHTUNG! NEUER ORT! (Zesstra,  7. Jan 2011, 10:36:17):
~#! rn=Humni rt=1294389810 rg=treffen.bekanntmachungen
~#! tid=1294389810
Kurze Rueckfrage: Es ist wirklich der 9.1. - also Sonntag Abend - geplant?

Zesstra

-----------------------------------------------------------------------------



Re: Re: Stati in Bochum am 9.1. - ACHTUNG! NEUER ORT! (Humni,  7. Jan 2011, 11:39:17):
~#! rn=Zesstra rt=1294392977 rg=treffen.bekanntmachungen
~#! tid=1294389810
Natuerlich nicht! Gemeint ist der 8.

Humni

-----------------------------------------------------------------------------



Bochumer Stati am 8.1.2011 (Humni,  7. Jan 2011, 11:40:09):
Huhu,

diesmal treffen wir uns am 8.1.2011. Um 20 Uhr. Im 4 Winde. Wer etwas anderes
behauptet hat, ist ein boeser Drache, der nur verwirren wollte. Das war
natuerlich pure Absicht. Jawohl. Hat ja schon geklappt. 

Humni

-----------------------------------------------------------------------------



Stati Bochum am 23.1.2011 (Humni, 22. Jan 2011, 14:41:30):
Huhu,

da das Allemannen-Bier im Vier Winde verboten gehoert und dazu fuehrt, dass
... lassen wir das, treffen wir uns morgen an gewohnter Stelle, zum
Fruehstueck im Mandragora, in Bochum. 

Uhrzeit mag ab 11 sein, und wie ueblich kommen Drachen erst spaeter.

Humni

-----------------------------------------------------------------------------



Bodensee-StaTi am WE vom 26./27. Februar  (Gloinson, 15. Feb 2011, 19:22:38):
Ort: Ravensburg bis Salem
Zeit: vormittags
Details: in Planung
Sicherheit: ziemlich definitiv :)

(Irgendwie ist der Artikel in treffen untergegangen.)


-----------------------------------------------------------------------------



KA Statis 24.2.-26.5. (Croft, 17. Feb 2011, 23:35:51):
Da wir heute recht beschlussfreudig waren, gibt's ein paar Termine mehr:
24.2. Brauhaus Moninger (www.brauhaus-moninger.de)
 3.3. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
10.3. Marktluecke (www.karlsruhermarktluecke.de)
17.3. Restaurant Delphi (www.restaurant-delphi.com)
24.3. Brayhead (www.brayhead.de)
31.3. La Cage (www.lacage.de)
 7.4. El Tequila (www.el-tequila.de)
14.4. Loewenbraeukeller (www.loewenbraeukeller.de)
21.4. Wirtshaus Wolfsbraeu (www.wirtshauswolfbraeu.de)
28.4. Restaurant Delphi (www.restaurant-delphi.com)
 5.5. Lago Bowling-Center (www.lago-bowling.de)
12.5. Jasmin (Marktstr. 16, Ettlingen)
19.5. Marianne's Flammkuchen (www.mariannes-flammkuchen.de)
26.5. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: Bodensee-StaTi am WE vom 26./27. Februar  (Vector, 21. Feb 2011, 18:38:04):
~#! rn=Gloinson rt=1297794158 rg=treffen.bekanntmachungen
~#! tid=1297794158
also samstag waere mir an dem wochenende deutlich lieber als sonntag
(dann kanns auch zumindest in der theorie laenger gehen), ort ist
mir wurst, von salem ueber friedrichshafen, ravensburg, meersburg
gern auch konstanz. sollen die muetter und/oder zugfahrer entscheiden :)

-----------------------------------------------------------------------------



Re: Re: Bodensee-StaTi am WE vom 26./27. Februar  (Hight, 23. Feb 2011, 11:53:50):
~#! rn=Vector rt=1298309884 rg=treffen.bekanntmachungen
~#! tid=1297794158
seids mal bissi genauer ... ich bleib des wochenende auf jeden fall in der
schweiz und kuendige mein erscheinen einfach mal an .o)
konstanz is von hieraus gesehen am naechsten aber nachdem ich eh audofahn werd
is es mir relativ bowidel.

-----------------------------------------------------------------------------



Re: Bodensee-StaTi am WE vom 26./27. Februar  (Gloinson, 23. Feb 2011, 13:28:22):
~#! rn=Gloinson rt=1297794158 rg=treffen.bekanntmachungen
~#! tid=1297794158
Ort: Ravensburg
     Baerengarten (http://www.baerengarten.de)
     (Anfahrt auf der Seite)
Zeit: Samstag, 26. Februar 2011
      circa 10-11 Uhr (ab 10:30 Uhr - 14:00 Uhr ist Brunch)

Der Baerengarten ist wohl recht gross, mal sehn ob wir eine gemuetliche Ecke
finden. Ansonsten hab ich eine Liste mit weiteren Moeglichkeiten von Martinas
Arbeitskollegen bekommen, das ist halt etwa #1.


-----------------------------------------------------------------------------



Re: Re: Bodensee-StaTi am WE vom 26./27. Februar  (Hight, 23. Feb 2011, 13:46:21):
~#! rn=Gloinson rt=1298464102 rg=treffen.bekanntmachungen
~#! tid=1297794158
bedankt .o) 

ich werde spaet dran sein weil ich ein penner bin ,o)

-----------------------------------------------------------------------------



Re: Re: Bodensee-StaTi am WE vom 26./27. Februar  (Roadrunner, 24. Feb 2011, 01:18:18):
~#! rn=Gloinson rt=1298464102 rg=treffen.bekanntmachungen
~#! tid=1297794158
... dabei ... ist die frage ob die Ulmerei irgendwie gemeinsam fahren will?
RR

-----------------------------------------------------------------------------



Re^3: Bodensee-StaTi am WE vom 26./27. Februar  (Gloinson, 24. Feb 2011, 01:22:18):
~#! rn=Roadrunner rt=1298506698 rg=treffen.bekanntmachungen
~#! tid=1297794158
Von Ravensburg bis Ulm geht eine tolle Schwaebsche Eisenbahn. Aber keine Geiss
mitnehmen, ja?


-----------------------------------------------------------------------------



Re^3: Bodensee-StaTi am WE vom 26./27. Februar  (Nicolai, 24. Feb 2011, 10:02:44):
~#! rn=Roadrunner rt=1298506698 rg=treffen.bekanntmachungen
~#! tid=1297794158
es gibt keine ulmerei mehr :)
soll ich nen tisch auf 10.30 reservieren, sonst sucht sich
jeder seine eigene gemuetliche ecke?!
glaube ich habe 7 personen gezaehlt? (hight, rr, gloinson,
martini, vector, sky, endor)

-----------------------------------------------------------------------------



Re^4: Bodensee-StaTi am WE vom 26./27. Februar  (Hight, 24. Feb 2011, 12:16:09):
~#! rn=Nicolai rt=1298538164 rg=treffen.bekanntmachungen
~#! tid=1297794158
reservierung is bestimmt keine dumme idee ... btw. ich bin net in der lage,
jemanden in ner kneipe zu finden, den ich seit jahren kenne. -> wenn ich
reinroll bitte aufspringen, mit den armen wedeln und laut "HIAHEA" rufen ,o)

-----------------------------------------------------------------------------



Re^5: Bodensee-StaTi am WE vom 26./27. Februar  (Vector, 24. Feb 2011, 12:27:02):
~#! rn=Hight rt=1298546169 rg=treffen.bekanntmachungen
~#! tid=1297794158
und du meinst WIR erkennen DICH?:)
wird eh wieder so laufen wie anno 2000 in muenchen
und wir dich ausm krankenhaus abholen :)

-----------------------------------------------------------------------------



Re^6: Bodensee-StaTi am WE vom 26./27. Februar  (Hight, 24. Feb 2011, 12:37:42):
~#! rn=Vector rt=1298546822 rg=treffen.bekanntmachungen
~#! tid=1297794158
einfach die obigen anweisungen jedesmal ausfuehren wenn irgendwer durch die
tuer kommt der 2m misst und ne brille traegt ,o)

-----------------------------------------------------------------------------



Re^7: Bodensee-StaTi am WE vom 26./27. Februar  (Rumata, 24. Feb 2011, 12:39:58):
~#! rn=Hight rt=1298547462 rg=treffen.bekanntmachungen
~#! tid=1297794158
Hoffentlich ist da nicht das Jahrestreffen der kurzsichtigen
Basketballspieler?

-----------------------------------------------------------------------------



Re^8: Bodensee-StaTi am WE vom 26./27. Februar  (Vector, 24. Feb 2011, 12:40:25):
~#! rn=Rumata rt=1298547598 rg=treffen.bekanntmachungen
~#! tid=1297794158
was gibts fuer re^25?

-----------------------------------------------------------------------------



Re^9: Bodensee-StaTi am WE vom 26./27. Februar  (Gloinson, 24. Feb 2011, 20:07:26):
~#! rn=Vector rt=1298547625 rg=treffen.bekanntmachungen
~#! tid=1297794158
Wenn noch keiner reserviert hat, reservier ich morgen auf Morgengrauen. Hab
ich Vector eigentlich ueberhaupt mal nuechtern gesehen? (Man lese den Satz,
wie man mag - ich hab mal vor langer Zeit Elendil nicht erkannt und daraus
resultierte ein sehr kurzes Duell.)


-----------------------------------------------------------------------------



Re^10: Bodensee-StaTi am WE vom 26./27. Februar  (Hight, 25. Feb 2011, 09:23:31):
~#! rn=Gloinson rt=1298574446 rg=treffen.bekanntmachungen
~#! tid=1297794158
mach dir nix draus ich hab nern wohl vor 10 jahren mal gesehen und kann mich
bis heute nicht wirklich dran erinnern ... one of these faces ,o)

-----------------------------------------------------------------------------



Re^11: Bodensee-StaTi am WE vom 26./27. Februar  (Gloinson, 25. Feb 2011, 19:59:39):
~#! rn=Hight rt=1298622211 rg=treffen.bekanntmachungen
~#! tid=1297794158
Korrekturen: Uhrzeit ab 10:30
             * Brunch ist Sonntags (Argh! Argh!)
               * Samstags ist Weisswurscht-Fruehstueck, Super-Haxe
                 und ab 11:30 eh normales Mittagsmenue
             * Reserviert auf "Morgengrauen"

(Das war jetzt der zweite Schnitzer mit Bestellungen in zwei Monaten. Ich bin
offiziell senil und sollte Erzmagier werden :P ).


-----------------------------------------------------------------------------



Artikel Biete Wokpfanne (Zesstra, 28. Feb 2011, 20:47:13):
~#! on=Gloinson ot=1298922127 og=hardsoftware
~#! on=Orktoeter ot=1298921619 og=party.bekanntmachungen
Hallo zusammen!

Ich biete eine Wokpfanne. Stahlblech, Rundboden. Abzuholen in der Naehe von
Wien.

Angebote bitte per mudmail oder tm.

OrkT.

-----------------------------------------------------------------------------



KA Statis 28.4.-26.5. (Croft, 22. Apr 2011, 07:57:53):
Das waren wohl ein paar viele Termine und der Artikel ist zu frueh
expired:
28.4. Restaurant Delphi (www.restaurant-delphi.com)
 5.5. Lago Bowling-Center (www.lago-bowling.de)
12.5. Jasmin (Marktstr. 16, Ettlingen)
19.5. Marianne's Flammkuchen (www.mariannes-flammkuchen.de)
26.5. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Bochum, Mandragora, 1.5. (Humni, 30. Apr 2011, 21:36:00):

Wir tanzen nicht in den Mai. Aber wir fruehstuecken im Mai. Da wir selbst die
Rueckensteaks Poivre nicht so hinkriegen, treffen wir uns am 1.5. wieder mal
im Mandragora.

Zum Brunchen. Vermutlich sind ab 11 Uhr Leute da, ich aber wohl wie immer noch
nicht.

Humni

-----------------------------------------------------------------------------



KA Sonder-StaTi 11.6.: Wilhelma (Croft, 14. Mai 2011, 09:18:52):
Am 11.6. gibt es mal wieder einen Karlsruher Sonder-Stammtisch.  Diesmal
geht es nach Stuttgart in die Wilhelma (www.wilhelma.de).  Genauere Details
stehen noch nicht fest, ausser das evtl abends zu einem Asiaten in Fellbach
geht.  Falls jemand Interesse hat mitzukommen: bitte melden.

Croft

-----------------------------------------------------------------------------



KA Statis 26.5.-9.6. (Croft, 20. Mai 2011, 11:56:37):
Es wurden schon mal zwei Folgelokale bestimmt:
26.5. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
 2.6. Marktluecke (www.karlsruhermarktluecke.de)
 9.6. Restaurant Delphi (www.restaurant-delphi.com)

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Braunschweig Stati am 6.6. (Mcdee, 28. Mai 2011, 18:01:20):
Wir treffen uns am 6.6. um 20 Uhr im "Charly's Tiger".

http://www.charlys-tiger.de/

Gruesse, Dee

-----------------------------------------------------------------------------



Re: KA Sonder-StaTi 11.6.: Wilhelma (Croft,  2. Jun 2011, 23:08:22):
~#! rn=Croft rt=1305357532 rg=treffen.bekanntmachungen
~#! tid=1305357532
Treffen ist um 9:45 vor dem Haupteingang (um ggf als Gruppe reinzukommen).

Croft

-----------------------------------------------------------------------------



5.6. Fruehstueck im Mandragora (Zesstra,  2. Jun 2011, 23:09:44):
Diesmal auch mal wieder mit Ankuendung. ;-)
Wir treffen uns zum Fruehstueck
am 5.6. ab 11:00
im Mandragora in Bochum.

Zesstra

-----------------------------------------------------------------------------



KA Statis 16.6.-21.7. (Croft, 10. Jun 2011, 11:17:42):
Und die naechsten Orte:
16.6. Brauhaus Moninger (www.brauhaus-moninger.de)
23.6. Kleine Doppelkopfrunde zu Hause :-)
30.6. El Taquito (www.el-taquito.de)
 7.7. San Marco (Pappelallee 8, http://tinyurl.com/6dgq2j )
14.7. Brayhead (www.brayhead.de)
21.7. Pizzaria Portobello (www.portobello-ettlingen.de)

Ggf. wird das Portobello noch vorgezogen/getauscht.
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA Statis 16.6.-21.7. (Croft, 14. Jul 2011, 09:58:12):
~#! rn=Croft rt=1307697462 rg=treffen.bekanntmachungen
~#! tid=1307697462
Der heutige Stammtisch wird kurzfristig ins Delphi verlegt:
14.7. Restaurant Delphi (www.restaurant-delphi.com)

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA Sonder-StaTi 31.7. (Croft, 15. Jul 2011, 00:08:09):
Es ist mal wieder soweit: wir gehen unseren alten Stammwirt in seiner
Seemuschel besuchen.  Und zwar am Sonntag den 31.7. mittags gen 13:00.

Webseite der Seemuschel:
http://www.av-buechenau.de/17503.html
und bei Google-Maps sieht man das Gebaeude unter
http://tinyurl.com/n7k2v

Croft

-----------------------------------------------------------------------------



KA Statis 28.7.-6.10. (Croft, 25. Jul 2011, 10:29:26):
Wir haben mal wieder ein paar Termine ausgewuerfelt.
28.07.11 Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
04.08.11 Brayhead (www.brayhead.de)
11.08.11 Titanic (www.ticka.net)
18.08.11 Restaurant Delphi (www.restaurant-delphi.com)
25.08.11 El Tequila (www.el-tequila.de)
01.09.11 Marianne's Flammkuchen (www.mariannes-flammkuchen.de)
08.09.11 San Marco (www.sanmarco-ka.de)
15.09.11 Loewenbraeukeller (www.loewenbraeukeller.de)
22.09.11 Marktluecke (www.karlsruhermarktluecke.de)
29.09.11 Restaurant Delphi (www.restaurant-delphi.com)
06.10.11 La Cage (www.lacage.de)

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Morgengrauen in Wacken... (Zesstra, 31. Jul 2011, 01:09:24):
Auch in diesem Jahr gibt es ein Morgengrauen auf dem Wacken Open Air,
d.h. es gibt eine Sammlung von MGlern dort. ;-)

Zu diesem Anlass rufe ich daher einen Sonder-Stati aus, vielleicht kommen auch
MG'ler dorthin, die nicht mit uns zusammen zelten:
Mi, 3.8. ab 16:00
im Biergarten vom Wackinger Village.

Wer bislang keinen von uns (Humni, Miril, Shaky, Olli, Vanir und ich) dort
kennt, kann mich zwecks etwaiger Absprachen oder Telefonnummerntausch unter
zesstra@zesstra.de erreichen. Am besten bis Di Abend, da ich dann nur noch
eingeschraenkt Netz hab. ;-)

Kommet zuhauf!

Zesstra

-----------------------------------------------------------------------------



Bochum, 28.8.2011, Mandragora, Brunch (Humni, 27. Aug 2011, 13:03:49):
Morgen wird wieder im Mandragora gebruncht. Vermutlich ab 11 Uhr, wobei
einzlene, wie auch der unterzeichnende Drache, erst spaeter kommen werden.

Mjam.

Humni

-----------------------------------------------------------------------------



Stati Bochum, 18.09.2011 (Arathorn, 14. Sep 2011, 19:25:28):
Hallo,

diesen Sonntag findet in Bochum ein ausserplanmaessiger Fruehstuecks-Stati
statt, da wir den Olli und den Mash als auswaertige Sondergaeste
begruessen duerfen.

Start ist wie immer gegen 11:00 im Mandragora, Konrad-Adenauer-Platz 1
in Bochum.

Kommet zuhauf!
Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 28.7.-6.10. (Croft, 15. Sep 2011, 09:12:26):
~#! rn=Croft rt=1311582566 rg=treffen.bekanntmachungen
~#! tid=1311582566
Da der Loewenbraeukeller kurzfrist renoviert wird und deswegen geschlossen
ist, gibt es eine ebenso kurzfristige Verlagerung des heutigen
Stammtisches ins Wolfsbraeu:
15.09.11 Wirtshaus Wolfsbraeu (www.wirtshauswolfbraeu.de)
22.09.11 Marktluecke (www.karlsruhermarktluecke.de)
29.09.11 Restaurant Delphi (www.restaurant-delphi.com)
06.10.11 La Cage (www.lacage.de)

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Fruehstuecken in Bochum, 25.09.2011, 11:00 Uhr (Arathorn, 19. Sep 2011, 18:07:40):
Moin,

wir sind nach dem Sondertermin letztes Wochenende wieder im gewohnten Takt
und treffen uns am kommenden Sonntag, dem 25.09.2011 ab 11:00 Uhr im
Mandragora in Bochum (Konrad-Adenauer-Platz 1).

Mit ein bisschen Glueck sind aber auch diesmal auswaertige Sondergaeste
zugegen. :-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Fruehstuecken in Bochum, 25.09.2011, 11:00 Uhr (Zook, 20. Sep 2011, 19:10:20):
~#! rn=Arathorn rt=1316448460 rg=treffen.bekanntmachungen
~#! tid=1316448460
Das Glueck sollte Euch hold sein!
Zook.

-----------------------------------------------------------------------------



Re: Re: KA Statis 28.7.-6.10. (Croft, 29. Sep 2011, 11:57:23):
~#! rn=Croft rt=1316070746 rg=treffen.bekanntmachungen
~#! tid=1311582566
Auf Grund der sehr geringen Beteiligung faellt der Stati heute aus.

Croft

-----------------------------------------------------------------------------



Fruehstuecken in Bochum, 09.10.2011, 11:00 Uhr (Arathorn,  2. Okt 2011, 21:54:50):
Hallo zusammen,

wie gewohnt, treffen wir uns auch kommenden Sonntag wieder zum Fruehstueck
im Mandragora, in Bochum (Konrad-Adenauer-Platz 1).

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Statis 13.10.-3.11. (Croft,  7. Okt 2011, 11:02:59):
Und die naechsten Termine sind festgelegt worden:

13.10.11 Loewenbraeukeller (www.loewenbraeukeller.de)
20.10.11 El Taquito (www.el-taquito.de)
27.10.11 Restaurant Delphi (www.restaurant-delphi.com)
03.11.11 Lago Bowling-Center (www.lago-bowling.de)

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 3.12. (Croft, 21. Okt 2011, 14:58:32):
Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am
3.12. freihalten.  Ort steht noch nicht fest, aber vermutlich
besuchen wir mal wieder die Ecurie du Rhin.

Croft

-----------------------------------------------------------------------------



Fruehstuecken in Bochum, 30.10.2011, 11:00 Uhr (Arathorn, 24. Okt 2011, 23:15:27):
Hallo zusammen,

nachdem das am letzten Wochenende ja nicht so richtig gut geklappt hat,
starten wir dieses Wochenende einen neuen Versuch als Ersatztermin:

     30.10.2011, 11:00 Uhr, Mandragora, Konrad-Adenauer-Platz 1

Kommet zuhauf,
Arathorn.

-----------------------------------------------------------------------------



KA Statis 3.11.-22.12. (Croft, 28. Okt 2011, 11:24:39):
Do 03.11.11 Lago Bowling-Center (www.lago-bowling.de)
Do 10.11.11 San Marco (www.sanmarco-ka.de)
Do 17.11.11 Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
Do 24.11.11 Portobello (www.portobello-ettlingen.de)
Do 01.12.11 El Tequila (www.el-tequila.de)
Do 08.12.11 China City - Sushi Bar (Brauerstr. 40, im Filmpalast am ZKM)
Do 15.12.11 Marktluecke (www.karlsruhermarktluecke.de)
Do 22.12.11 San Marco (www.sanmarco-ka.de) 
Beginn wie immer um 20:00 ausser am 15.12.: da treffen wir uns um 19:30
vorher auf dem Gluehweinmarkt.

Croft

-----------------------------------------------------------------------------



Stati Bochum, 13.11.2011 (Arathorn, 10. Nov 2011, 22:41:40):
Hallo zusammen,

kommenden Sonntag, den 13.11.2011, findet wieder der Bochumer Fruehstuecks-
Stammtisch im Mandragora (Konrad-Adenauer-Platz 1) statt.

Kommet zuhauf!

Arathorn.

P.S.: Ahja, Start ist um 11:00 Uhr.

-----------------------------------------------------------------------------



Re: KA Statis 3.11.-22.12. (Croft, 24. Nov 2011, 23:29:15):
~#! rn=Croft rt=1319793879 rg=treffen.bekanntmachungen
~#! tid=1319793879
Das El Tequila gibt es leider nicht mehr.  Stattdessen geht es mal
wieder zu einem Thailaender:
Do 01.12.11 Rim Wang (www.rim-wang.de)
Do 08.12.11 China City - Sushi Bar (Brauerstr. 40, im Filmpalast am ZKM)
Do 15.12.11 Marktluecke (www.karlsruhermarktluecke.de)
Do 22.12.11 San Marco (www.sanmarco-ka.de) 
Beginn wie immer um 20:00 ausser am 15.12.: da treffen wir uns um 19:30
vorher auf dem Gluehweinmarkt.

Croft

-----------------------------------------------------------------------------



Re: Re: KA Statis 3.11.-22.12. (Croft, 15. Dez 2011, 14:16:08):
~#! rn=Croft rt=1322173755 rg=treffen.bekanntmachungen
~#! tid=1319793879
Da die Marktluecke zur Weihnachtszeit Parties veranstaltet und das weniger
gemuetlich wird, sind wir heute im Multi Kulti (Schlossplatz 19) zu finden.

Croft

-----------------------------------------------------------------------------



KA Statis 22.12.-12.1. (Croft, 15. Dez 2011, 23:36:42):
Do 22.12.11 San Marco (www.sanmarco-ka.de)
Do 29.12.11 Wirtshaus Wolfsbraeu (www.wirtshauswolfbraeu.de)
Do 05.01.12 Restaurant Delphi (www.restaurant-delphi.com)
Do 12.01.12 Drachen (Karl-Wilhelm-Strasse 10, ehemals El Tequila)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA Stati 19.1. (Croft, 13. Jan 2012, 11:45:35):
Da die Marktluecke letztes Jahr ausfallen musste, wird sie naechste
Woche nachgeholt:
Do 19.01.11 Marktluecke (www.karlsruhermarktluecke.de)
Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA Statis 26.1.-29.3. (Croft, 20. Jan 2012, 11:27:42):
Wir waren mal wieder etwas beschlussfreudiger:

26.01.12 Brauhaus Kuehler Krug (www.brauhaus-kuehler-krug.de)
02.02.12 Punjab (www.punjab-restaurant.de)
09.02.12 Portobello (www.portobello-ettlingen.de)
16.02.12 Loewenbraeukeller (www.loewenbraeukeller.de)
23.02.12 Restaurant Delphi (www.restaurant-delphi.com)
01.03.12 Marianne's Flammkuchen (www.mariannes-flammkuchen.de)
08.03.12 Jasmin (Marktstr. 16, Ettlingen)
15.03.12 Wirtshaus Wolfsbraeu (www.wirtshauswolfbraeu.de)
22.03.12 San Marco (www.sanmarco-ka.de)
29.03.12 Vogel Hausbraeu Ettlingen (www.vogelbraeu.de) 

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Bochum heute, 19.2. (Humni, 19. Feb 2012, 10:54:05):
Huhu ihr,

jetzt gleich ist Stati in Bochum. Auf auf! Der geht in 7 Minuten, um 11 Uhr
oder so, los. Ich werde aber erst spaeter kommen.

Nur, damit ihr rechtzeitig Bescheid wisst. Wie immer im Mandragora.

Humni

-----------------------------------------------------------------------------



Stati in Bochum am 33.2.2012 (Nun gut, 4.3.) (Humni, 19. Feb 2012, 11:01:34):
Huhu ihr,

da wir uns alle 14 Tage in Bochum treffen ist der naechste Stammtisch also am
33.2.. Das ist der 4.3. Wir treffen uns um 11 Uhr im Mandragora. Ich werde
aber nicht puenktlich sein, und Miril auch nicht. 

Humni

-----------------------------------------------------------------------------



Re: Stati in Bochum am 33.2.2012 (Nun gut, 4.3.) (Zesstra, 19. Feb 2012, 23:17:54):
~#! rn=Humni rt=1329645694 rg=treffen.bekanntmachungen
~#! tid=1329645694
Und wir haben heut ueberlegt, dass wir unser Stati-Programm leicht
modifizieren. Daher faellt der Stati am 4.3. AUS.

Zesstra

-----------------------------------------------------------------------------



Stati in Bochum am 26.2. (Zesstra, 19. Feb 2012, 23:19:02):
Der naechste Stati findet nach heutiger Entscheidung bereits naechste Woche,
am Sonntag, 26.2., ab 11:00 im Mandragora in Bochum statt.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Stati in Bochum am 33.2.2012 (Nun gut, 4.3.) (Humni, 20. Feb 2012, 00:30:22):
~#! rn=Zesstra rt=1329689874 rg=treffen.bekanntmachungen
~#! tid=1329645694
Um das nochmal deutlich zu sagen: Sowohl der Stati am 33.2. wie auch der am
4.3. fallen BEIDE AUS.

Humni

-----------------------------------------------------------------------------



KA Statis 22.3.-5.4. (Croft, 21. Mar 2012, 11:21:37):
Na sowas, ist der letzte Artikel schon wieder expired.  Hier die alten
noch offenen Termine zzgl des angehaengten Griechen.

22.03.12 San Marco (www.sanmarco-ka.de)
29.03.12 Vogel Hausbraeu Ettlingen (www.vogelbraeu.de) 
05.04.12 Restaurant Delphi (www.restaurant-delphi.com)

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 18.5. (Croft,  5. Apr 2012, 18:30:58):
Es ist schon wieder ein halbes Jahr rum und da wir externe Gaeste erwarten
wird ein Ausflug ins Elsass organisiert.  Termin ist Freitag der 18.5.
seines Zeichens Brueckentag nach Christi Himmelfahrt.  Ort steht noch
nicht fest, Empfehlungen werden entgegen genommen ;-)  Interessierte
bitte bei mir melden.

Croft

-----------------------------------------------------------------------------



KA Statis 12.4.-17.5. (Croft,  6. Apr 2012, 09:40:52):
12.04.12 El Taquito (www.el-taquito.de)
19.04.12 Brauhaus Moninger (www.brauhaus-moninger.de)
26.04.12 Portobello (www.portobello-ettlingen.de)
03.05.12 Loewenbraeukeller (www.loewenbraeukeller.de)
10.05.12 Vogel Hausbraeu Durlach (www.vogelbraeu.de)
17.05.12 San Marco (www.sanmarco-ka.de)

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Mandragora-Stammtisch in Bochum, 29.4.2012 (Humni, 28. Apr 2012, 21:07:14):
~#! on=Humni ot=1335639958 og=treffen
Huhu ihr,

wir haben unserer Rechnung nach morgen wieder im Mandragora in Bochum
Stammtisch. Dort gibt es Fruehstueck, Rueckensteak Poivre, Kaffee,
Apfelsaftschorle und Hunde zu begutachten. Losgehen wird das vermutlich,
sofern auch andere Leute kommen, ab 11 Uhr, wir werden aber wieder erst
spaeter auftauchen.

Ein Drache

-----------------------------------------------------------------------------



Re: Mandragora-Stammtisch in Bochum, 29.4.2012 (Humni, 13. Mai 2012, 10:17:44):
~#! rn=Humni rt=1335640034 rg=treffen.bekanntmachungen
~#! tid=1335640034
So. Gleich ist wieder Stammtisch im Mandragora. Also heute. Um 11 Uhr.

Damit keiner sagt, der sei nicht angekuendigt!

Humni

-----------------------------------------------------------------------------



KA Statis 24.5.-28.6. (Croft, 19. Mai 2012, 14:13:57):
24.05.12 Restaurant Delphi - www.restaurant-delphi.com
31.05.12 Jasmin - Marktstr. 16, Ettlingen
07.06.12 Rim Wang - www.rim-wang.de
14.06.12 Pizzahaus - Rintheimer Strasse 2
21.06.12 Brayhead - www.brayhead.de
28.06.12 Marktluecke - www.karlsruhermarktluecke.de

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA Statis 24.5.-28.6. (Croft, 31. Mai 2012, 14:02:14):
~#! rn=Croft rt=1337429637 rg=treffen.bekanntmachungen
~#! tid=1337429637
Da sich das Jasmin Pfingstferien macht, geht es heute kurzfristig ins
Portobello (www.portobello-ettlingen.de).

Croft

-----------------------------------------------------------------------------



KA Stati 31.05. (Gingko, 31. Mai 2012, 14:04:36):
Da das Jasmin Betriebsurlaub hat, verlegen wir den heutigen Stammtisch
kurzfristig ins Portobello - http://www.portobello-ettlingen.de

Gingko.

-----------------------------------------------------------------------------



Re: KA Statis 24.5.-28.6. (Croft, 29. Jun 2012, 11:42:23):
~#! rn=Croft rt=1337429637 rg=treffen.bekanntmachungen
~#! tid=1337429637
Da wir gestern das Halbfinale anderwaertig angeschaut haben, wird die
Marktluecke auf naechste Woche verlegt:
05.07.12 Marktluecke - www.karlsruhermarktluecke.de

Croft

-----------------------------------------------------------------------------



Mandragora-Stammtisch in Bochum am 8.7.2012 (Humni,  1. Jul 2012, 00:34:00):

Huhu ihr,

am Sonntag, dem 8.7., wird es im Mandragora wieder einmal einen Stammtisch
geben. Dort werden Rueckensteaks und Fruehstueck gegessen, da wir wie ueblich
dort brunchen werden.

Also, ab 11 Uhr, oder wann auch immer da Leute kommen, wie immer werden Miril
und ich erst spaeter ankommen.

Humni

-----------------------------------------------------------------------------



KA Statis 12.7.-23.8. (Croft,  8. Jul 2012, 12:41:17):
12.07.12 Jasmin - Marktstr. 16, Ettlingen
19.07.12 Brayhead - www.brayhead.de
26.07.12 Restaurant Delphi - www.restaurant-delphi.com
02.08.12 Wacken - www.wacken.com - Karte erforderlich :-)
09.08.12 San Marco - www.sanmarco-ka.de
16.08.12 El Taquito - www.el-taquito.de
23.08.12 Flammaurant - www.flammaurant-kastaniengarten.de

Beginn wie immer um 20:00 (ausser in Wacken, das haengt noch von der
Running Order ab)

Croft

-----------------------------------------------------------------------------



Wacken (Humni,  9. Jul 2012, 12:59:29):
Huhu,

da einige Mudder nach Wacken fahren und andere davon schon hoerten: Wir
wollten einen grossen Mud-und-Mudumgebungstross bilden, der gemeinsam anreist.
Wer da noch mitmachen will, darf mir gerne eine Ingame-Mail schreiben (wir
wollen in der Nacht von Dienstag auf Mittwoch anreisen).

Ebenso koennen wir auch gerne ueber einen Mudstammtisch im Biergarten oder auf
dem Wackinger-Markt reden...

Humni
PS: Mich einfach per tm ansprechen geht natuerlich auch. Allerdings idle ich
auch oefter, das ist dann kein "Mit Dir rede ich nicht".

-----------------------------------------------------------------------------



Re: Wacken (Saray, 10. Jul 2012, 09:12:49):
~#! rn=Humni rt=1341831569 rg=treffen.bekanntmachungen
~#! tid=1341831569
Neil und ich reisen ja schon fr|her mit anderen leuten an, aber Stammtisch
faend ich super :-).
Mittwoch oder Donnerstag - bevors halt richtig losgeht - eignet sich da ja
wohl am Besten.
Gruss Saray

-----------------------------------------------------------------------------



KA Statis 26.7.-23.8. (Croft, 21. Jul 2012, 17:25:02):
Da das San Marco am 9.8. Betriebsferien hat, tauschen wir das Delphi mit
dem San Marco:
26.07.12 San Marco - www.sanmarco-ka.de
02.08.12 Wacken - www.wacken.com - Karte erforderlich :-)
09.08.12 Restaurant Delphi - www.restaurant-delphi.com
16.08.12 El Taquito - www.el-taquito.de
23.08.12 Flammaurant - www.flammaurant-kastaniengarten.de

Beginn wie immer um 20:00 (ausser in Wacken, das haengt noch von der
Running Order ab)

Croft

-----------------------------------------------------------------------------



KA Sonder-Stati 29.7. (Croft, 26. Jul 2012, 16:30:06):
Auch dieses Jahr besuchen wir unseren alten Stammwirt in seiner Seemuschel.
Diesmal ist es am Sonntag den 29. Juli ab 13:00 soweit.

Webseite der Seemuschel:
http://www.av-buechenau.de/17503.html
und bei Google-Maps sieht man das Gebaeude unter
http://tinyurl.com/n7k2v

Croft

-----------------------------------------------------------------------------



Re: Re: Wacken (Croft, 26. Jul 2012, 19:29:31):
~#! rn=Saray rt=1341904369 rg=treffen.bekanntmachungen
~#! tid=1341831569
Am Donnerstag ist auf jeden Fall der KA-Stammtisch in Wacken.  Aber es
spricht ja nix dagegen mehrere Stammtische dort zu machen ;-)

Croft

-----------------------------------------------------------------------------



Re: KA Sonder-Stati 29.7. (Zesstra, 26. Jul 2012, 20:21:45):
~#! rn=Croft rt=1343313006 rg=treffen.bekanntmachungen
~#! tid=1343313006
Da kann ich leider nicht.
Aber ich glaube, dass an dem Tag in Bochum Fruehstueck im Mandra stattfindet.
So ganz sicher bin ich aber noch nicht, das haengt naemlich viel von Humni ab.
;-)

Zesstra

-----------------------------------------------------------------------------



Re: Re: KA Sonder-Stati 29.7. (Arathorn, 26. Jul 2012, 21:01:25):
~#! rn=Zesstra rt=1343326905 rg=treffen.bekanntmachungen
~#! tid=1343313006
Ja nee, oder? Sag nich, dass ihr jetzt am WE in Bochum fruehstuecks-
stammtischen wollt, wenn wir zum "FamilyDay" an den Moehnesee fahren
"duerfen"?! *argl*

Arathorn.

-----------------------------------------------------------------------------



Re^3: KA Sonder-Stati 29.7. (Zesstra, 26. Jul 2012, 21:02:14):
~#! rn=Arathorn rt=1343329285 rg=treffen.bekanntmachungen
~#! tid=1343313006
naja, es bietet sich zumindest an, weil auch div. Gaeste da sind, wir nicht
spielen und die Woche drauf nicht geht und so...

Zesstra

-----------------------------------------------------------------------------



Re^4: KA Sonder-Stati 29.7. (Zook, 27. Jul 2012, 08:46:21):
~#! rn=Zesstra rt=1343329334 rg=treffen.bekanntmachungen
~#! tid=1343313006
Also wenn da Fruehstueck im Mandra in BO ist, dann komm ich 
da wohl mal hin.

Zook.

-----------------------------------------------------------------------------



Re^5: KA Sonder-Stati 29.7. (Humni, 27. Jul 2012, 17:30:18):
~#! rn=Zook rt=1343371581 rg=treffen.bekanntmachungen
~#! tid=1343313006
Na, dann machen wir doch eins!

Am 29.7. ist Fruehstueck im Mandragora in Bochum.

Wie immer so ab 11. Dann ist aber wohl noch keiner da, die meisten kommen
vermutlich erst spaeter.

Humni

-----------------------------------------------------------------------------



Re^3: Wacken (Saray, 27. Jul 2012, 23:03:46):
~#! rn=Croft rt=1343323771 rg=treffen.bekanntmachungen
~#! tid=1341831569
Na ja, muss mans denn so genau nehmen? Donnerstag faengt doch auch das
Programm richtig an. Waer da Mittwoch nicht sowieso besser?
Na ja, so oder so wird man sich sicher sehen. Es gibt ja Handies oder wie die
Dinger heissen *g*.
Saray

-----------------------------------------------------------------------------



Re^4: Wacken (Zesstra, 27. Jul 2012, 23:39:47):
~#! rn=Saray rt=1343423026 rg=treffen.bekanntmachungen
~#! tid=1341831569
Der Punkt ist, dass der Karlsruher Stammtisch immer an einem Donnerstag
stattfindet. ;-) Es ist egal, wo er stattfindet, aber ist muss ein Donnerstag
sein. Aber wie geschrieben: wir sollten uns einfach Mittwoch treffen und
Donnerstag nochmal. ;-)

Zesstra

-----------------------------------------------------------------------------



Re^3: KA Sonder-Stati 29.7. (Roadrunner, 28. Jul 2012, 20:03:49):
~#! rn=Arathorn rt=1343329285 rg=treffen.bekanntmachungen
~#! tid=1343313006
bin dabei
RR

-----------------------------------------------------------------------------



Re^4: KA Sonder-Stati 29.7. (Saray, 29. Jul 2012, 18:29:45):
~#! rn=Roadrunner rt=1343498629 rg=treffen.bekanntmachungen
~#! tid=1343313006
Na, mir solls recht sein. Doppelt haelt besser und so :-D
Saray

-----------------------------------------------------------------------------



Re^6: KA Sonder-Stati 29.7. (Zook, 29. Jul 2012, 22:48:17):
~#! rn=Humni rt=1343403018 rg=treffen.bekanntmachungen
~#! tid=1343313006
Ja. Leicht spaeter.
Aber der Grund, nicht so frueh aufzustehen, war natuerlich
fabelhaft!

Zook.

-----------------------------------------------------------------------------



KA Sonder-Stati 14.7. (Croft, 13. Aug 2012, 20:29:04):
Morgen treffen wir uns anlaesslich eines auswaertigen Gastes um 20:00
in der Marktluecke.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 19.08.2012 (Arathorn, 18. Aug 2012, 11:04:20):
Hallo zusammen,

morgen treffen sich die Bochumer Mudder wieder zum Fruehstuecks-Stammtisch
im Mandragora (Konrad-Adenauer-Platz 1, Bochum). Los geht's wie immer gegen
11:00 Uhr.

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Statis 23.-30.8. (Croft, 18. Aug 2012, 23:42:11):
23.08.12 Flammaurant - www.flammaurant-kastaniengarten.de
30.08.12 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de

Fuer das Flammaurant wird um Anmeldung gebeten.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 02.09.2012 (Arathorn, 27. Aug 2012, 21:35:13):
Hallo,

am kommenden Sonntag (Uiuiui, satte 5 Tage vorher angekuendigt. Zeichen und
Wunder, Ihr wisst schon.) findet wieder unser Fruehstuecks-Stammtisch im
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr, aber nicht
abschrecken lassen, wenn um die Zeit noch keiner da ist. ;-)

Ahso, Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Statis 6.9.-18.10. (Croft, 31. Aug 2012, 17:56:54):
Die naechsten Termine stehen fest.  Am 27.9. lassen wir uns bezaubern
und unterhalten.  Hier kommt man nur dem passenden Ticket rein.
06.09.12 Rim Wang - www.rim-wang.de
13.09.12 Brauhaus Moninger - www.brauhaus-moninger.de
20.09.12 Portobello - www.portobello-ettlingen.de
27.09.12 Tollhaus - www.tollhaus.de - Helge Thun & Topas - Ticket erforderlich
04.10.12 Restaurant Delphi - www.restaurant-delphi.com
11.10.12 Loewenbraeukeller - www.loewenbraeukeller.de
18.10.12 San Marco - www.sanmarco-ka.de

Und einen Sonderstammtisch gibt es anlaesslich eines auswaertigen
Gastes auch noch:
14.09.12 Brayhead - www.brayhead.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 23.09.2012 (Arathorn, 18. Sep 2012, 00:24:40):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr, aber nicht
wundern, wenn dann noch keiner da ist. Wer noch nie da war und sich vorher
anmeldet, kann damit aber die Chance erhoehen, dass irgendwer sich um 
Punkt 11:00 Uhr hinbequemt. :-)

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Stammtisch in Bochum am 07.10.2012 (Arathorn,  2. Okt 2012, 00:30:30):
~#! rn=Arathorn rt=1347920680 rg=treffen.bekanntmachungen
~#! tid=1347920680
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr, aber nicht
wundern, wenn dann noch keiner da ist. Wer noch nie da war und sich vorher
anmeldet, kann damit aber die Chance erhoehen, dass irgendwer sich um 
Punkt 11:00 Uhr hinbequemt. :-)

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

P.S.: Diesmal mit auswaertigem Gast. ;-)

-----------------------------------------------------------------------------



Re: KA Statis 6.9.-18.10. (Croft,  4. Okt 2012, 16:18:55):
~#! rn=Croft rt=1346428614 rg=treffen.bekanntmachungen
~#! tid=1346428614
Mangels Teilnehmern entfaellt der heutige Stammtisch.  Wer trotzdem zwei
Mudder zu Gesicht bekommen will, kann gerne zu Elaekelaeiset ins Substage
kommen ;-)

Croft

-----------------------------------------------------------------------------



Re: Re: KA Statis 6.9.-18.10. (Gloinson,  4. Okt 2012, 17:11:26):
~#! rn=Croft rt=1349360335 rg=treffen.bekanntmachungen
~#! tid=1346428614
Das sieht ohne Umlaute sehr komisch aus.


-----------------------------------------------------------------------------



Stammtisch in Bochum am 21.10.2012 (Arathorn, 17. Okt 2012, 20:17:04):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr, aber nicht
wundern, wenn dann noch keiner da ist. Wer noch nie da war und sich vorher
anmeldet, kann damit aber die Chance erhoehen, dass irgendwer sich um 
Punkt 11:00 Uhr hinbequemt. :-)

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Statis 25.10.-29.11. (Croft, 19. Okt 2012, 11:50:40):
Es war mal wieder soweit:
25.10.12 Jasmin - Marktstr. 16, Ettlingen
01.11.12 La Cage - www.lacage.de
08.11.12 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
15.11.12 Marktluecke - www.karlsruhermarktluecke.de
22.11.12 Kouros - www.restaurant-kouros.de
29.11.12 Brauhaus Kuehler Krug - www.brauhaus-kuehler-krug.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: Stammtisch in Bochum am 21.10.2012 (Arathorn, 19. Okt 2012, 19:00:33):
~#! rn=Arathorn rt=1350497824 rg=treffen.bekanntmachungen
~#! tid=1350497824
Aufgrund mangelnder Teilnahme wird der Stammtisch an diesem WE leider nicht
stattfinden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Pssscht... (Zook, 27. Okt 2012, 14:59:01):
... es sind konspirative Treffen in Gange!

Zook

-----------------------------------------------------------------------------



Stammtisch in Bochum am 04.11.2012 (Arathorn,  2. Nov 2012, 01:16:46):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr, aber nicht
wundern, wenn dann noch keiner da ist. Wer noch nie da war und sich vorher
anmeldet, kann damit aber die Chance erhoehen, dass irgendwer sich um 
Punkt 11:00 Uhr hinbequemt. :-)

*** Diese Woche mit auswaertigem Special Guest! :-)

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Stammtisch in Bochum am 18.11.2012 (Arathorn, 15. Nov 2012, 00:02:06):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr, aber nicht
wundern, wenn dann noch keiner da ist. Wer noch nie da war und sich vorher
anmeldet, kann damit aber die Chance erhoehen, dass irgendwer sich um 
Punkt 11:00 Uhr hinbequemt. :-)

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Stammtisch in Bochum am 18.11.2012 (Masul, 18. Nov 2012, 13:34:29):
~#! rn=Arathorn rt=1352934126 rg=treffen.bekanntmachungen
~#! tid=1352934126
Hallo Bochumer Stati,
komme gerade aus dem Mandragora...
Das Mandra wird derzeit umgebaut und ist daher bis 6.12. geschlossen,
so war zu erfahren.
Vielleicht brauchen wir einen anderen Treffpunkt?
Gruss, Masul.


-----------------------------------------------------------------------------



Treffen in Darmstadt am 01.12 (Saray, 25. Nov 2012, 11:44:12):
Hallo zusammen,
und wieder einmal wird der Versuch eines Treffens in Darmstadt gestartet :-).
Treffpunkt waere wieder der Ratskeller so ab 19 uhr am Samstag, den 01.12.
Neil waere wie immer an seinem Judas Priest-Backpatch zu erkennen.
Kommet zahlreichst!
gruss Saray

-----------------------------------------------------------------------------



Re: Treffen in Darmstadt am 01.12 (Vanir, 29. Nov 2012, 15:09:17):
~#! rn=Saray rt=1353840252 rg=treffen.bekanntmachungen
~#! tid=1353840252
Ich werde da uebrigens auch erscheinen. Darum: Kommet zu hauf!
V.

-----------------------------------------------------------------------------



Re: Re: Treffen in Darmstadt am 01.12 (Saray, 29. Nov 2012, 18:36:17):
~#! rn=Vanir rt=1354198157 rg=treffen.bekanntmachungen
~#! tid=1353840252
Na, wenn das kein Argument ist :-D

-----------------------------------------------------------------------------



Re^3: Treffen in Darmstadt am 01.12 (Ark, 29. Nov 2012, 20:03:13):
~#! rn=Saray rt=1354210577 rg=treffen.bekanntmachungen
~#! tid=1353840252
-1, sorry.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: Treffen in Darmstadt am 01.12 (Eljo, 29. Nov 2012, 20:04:08):
~#! rn=Ark rt=1354215793 rg=treffen.bekanntmachungen
~#! tid=1353840252
Ob Arks Absage was mit Vanir zu tun hat? ;-)

-----------------------------------------------------------------------------



Re^5: Treffen in Darmstadt am 01.12 (Ark, 29. Nov 2012, 20:04:47):
~#! rn=Eljo rt=1354215848 rg=treffen.bekanntmachungen
~#! tid=1353840252
Zeitliche Koinzidenz, keine inhaltliche :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



KA Statis 6.12.-10.1. (Croft, 30. Nov 2012, 16:59:27):
Die naechsten Termine:
06.12.12 San Marco - www.sanmarco-ka.de
13.12.12 Marktluecke - www.karlsruhermarktluecke.de
20.12.12 Shalimar - Leopoldstrasse 28, Ettlingen
27.12.12 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
03.01.13 Kouros - www.restaurant-kouros.de
10.01.13 La Dolce Vita - www.la-dolcevita.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch im Ruhrgebiet am 1.12. (Humni,  1. Dez 2012, 16:52:04):
Hallo ihr,

eigentlich waere morgen Stammtisch im Mandragora. Da das aber gerade zu hat,
andererseits die Weihnachtsmarktsaison angefangen hat, machen wir heute abend
den Essener Weihnachtsmarkt unsicher, bevor wir dann Skyfall gucken.

Wer also mag, kann gegen 18:15 im Starbucks am Essener HBF sein.

Humni

-----------------------------------------------------------------------------



Re: Stammtisch im Ruhrgebiet am 1.12. (Zesstra,  1. Dez 2012, 17:08:29):
~#! rn=Humni rt=1354377124 rg=treffen.bekanntmachungen
~#! tid=1354377124
Das schaffe ich nicht mehr. ;-)

Zesstra

-----------------------------------------------------------------------------



Re: Stammtisch im Ruhrgebiet am 1.12. (Masul,  2. Dez 2012, 11:54:31):
~#! rn=Humni rt=1354377124 rg=treffen.bekanntmachungen
~#! tid=1354377124
Hm. Das habe ich wohl etwas zu spaet gelesen...
Masul

-----------------------------------------------------------------------------



Stammtisch in Bochum am 9.12.2012 (Arathorn,  7. Dez 2012, 23:20:10):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr; von 
auswaerts anreisende Gaeste werden gebeten, sich vorher kurz zu melden.

Adresse: Konrad-Adenauer-Platz 1.

Das Mandra hatte uebrigens die letzten 3 Wochen zum Umbauen und Renovieren
geschlossen, es lohnt sich also, mal wieder vorbeizuschauen. :-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 6.12.-10.1. (Croft, 12. Dez 2012, 13:51:40):
~#! rn=Croft rt=1354291167 rg=treffen.bekanntmachungen
~#! tid=1354291167
Da die Marktluecke mit dem Weihnachtsmarkt davor keine Reservierungen
annimmt und das El Taquito schon zu voll fuer uns ist, geht es diesen
Donnerstag zu Kai's Pizza (www.kais-pizza.de).  Allerdings treffen
wir uns zu erst um 20:00 am Schoepf um dem alljaehrlichen wiederkehrenden
Gluehwein zu huldigen.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 23.12.2012 (Arathorn, 19. Dez 2012, 23:15:58):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr; von 
auswaerts anreisende Gaeste werden gebeten, sich vorher kurz zu melden.

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 6.12.-10.1. (Croft, 24. Dez 2012, 08:59:14):
~#! rn=Croft rt=1354291167 rg=treffen.bekanntmachungen
~#! tid=1354291167
Der Weihnachtsstammtisch wird kurzerhand in den Filmpalast verlegt.
Es gilt den Hobbit in 3D HFR anzuschauen :-)

Croft

-----------------------------------------------------------------------------



Re: KA Statis 6.12.-10.1. (Croft,  2. Jan 2013, 21:30:04):
~#! rn=Croft rt=1354291167 rg=treffen.bekanntmachungen
~#! tid=1354291167
Da die in Karlsruhe verbleibende Gemeinde sich zu wenig fuehlt um ins Kouros
zu gehen wird der Zweit-Stammtisch in Buetgenbach in Belgien offiziell zum
Erst-Stammtisch erkoren:
03.01.13 The Pub 24 (www.thepub24.eu)
Beginn wie immer um 20:00.  Das waer uebrigens auch der erste offizielle
Karlsruher Stammtisch ausserhalb von Deutschland ;-)

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 06.01.2013 (Ahab,  5. Jan 2013, 19:56:53):
Hallo zusammen,

dieses Mal etwas kurzfristig: Morgen findet wieder unser Fruehstuecks-
Stammtisch im Mandra in Bochum statt. Beginn wie ueblich gegen 11:00 Uhr.

Adresse: Konrad-Adenauer-Platz 1.

Gruss, Ahab

-----------------------------------------------------------------------------



KA Statis 17.-24.1. (Croft, 12. Jan 2013, 13:02:56):
Die beiden nicht besuchten Lokale werden kurzerhand nachgeholt:
17.01.13 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
24.01.13 Kouros - www.restaurant-kouros.de
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 20.01.2013 (Arathorn, 16. Jan 2013, 22:30:43):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr; von 
auswaerts anreisende Gaeste werden gebeten, sich vorher kurz zu melden.

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Statis 31.1.-14.3. (Croft, 25. Jan 2013, 11:23:08):
31.01.13 Rim Wang - www.rim-wang.de
07.02.13 Titanic - Kronenstrasse 3, 76133 Karlsruhe
14.02.13 El Taquito - www.el-taquito.de
21.02.13 Loewenbraeukeller - www.loewenbraeukeller.de
28.02.13 Lago Bowling-Center - www.lago-bowling.de
07.03.13 San Marco - www.sanmarco-ka.de
14.03.13 La Dolce Vita - www.la-dolcevita.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 03.02.2013 (Arathorn, 31. Jan 2013, 21:29:30):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr; von 
auswaerts anreisende Gaeste werden gebeten, sich vorher kurz zu melden.

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 31.1.-14.3. (Croft, 14. Feb 2013, 16:54:24):
~#! rn=Croft rt=1359109388 rg=treffen.bekanntmachungen
~#! tid=1359109388
Da das El Taquito heute keine groesseren freien Tische mehr hat geht
es in die Marktluecke.
Und die beiden letzten Lokale wurden auch noch getauscht:
14.02.13 Marktluecke (www.karlsruhermarktluecke.de)
21.02.13 Loewenbraeukeller - www.loewenbraeukeller.de
28.02.13 Lago Bowling-Center - www.lago-bowling.de
07.03.13 La Dolce Vita - www.la-dolcevita.de
14.03.13 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



uddertreffen (Arson, 22. Feb 2013, 15:48:36):
Hey, hiermit starte ich den versuch eines muddertreffens in hamburg.
Am 16.03.2013 um 19.00 uhr das ist ein Samstag.
Beim Grichen taverna Kamiros
Adresse: Fuhlsbuettler Strasse 256, 22307 Hamburg 
Telefon:040 617683 

Bitte sagt kurz bescheit wenn ihr kommen koennt, damit ich nen tisch
resavieren kann.

Ich freue mich auf nen netten Abend mit euch!

Lg lukas alias arson


-----------------------------------------------------------------------------



Spontan-Stati in Ravensburg/Weingarten (Vector, 26. Feb 2013, 00:08:45):
Oh Freude, oh Wonne
so hoert die Verkuendung!

Anlaesslich eines hohen B-E-suchs wird hiermit spontan
ein Stammtisch im Sueden des Zook'schen Reichs verlautbar:

Mittwoch, 6. Maerz ab 19 Uhr (ja wir sind alt und fangen
deshalb frueh an, damit der Durst gestillt wird).

Ort ueberleg ich mir noch :) bei Interesse teilemit
oder mail. Gloinson, Sky, Roadrunner, Hight kriegen noch
ne extra Vorl^H^HEinladung :)

-----------------------------------------------------------------------------



KA Statis 7.3. bis 21.3.2013 (Gingko,  6. Mar 2013, 17:35:34):
Aufgrund einer Praeferenzenoptimierung aendert sich nochmal eine Lokalitaet
und einen Termin haben wir schon mehr festgelegt:
07.03.2013 Mariannes Flammkuchen - www.mariannes-flammkuchen.de
14.03.2013 San Marco - www.sanmarco-ka.de
21.03.2013 La Dolce Vita - www.la-dolcevita.de

Beginn wie ueblich 20:00h.
Gingko

-----------------------------------------------------------------------------



Stammtisch in Bochum am 10.03.2013 (Arathorn,  9. Mar 2013, 12:48:13):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:00 Uhr; von 
auswaerts anreisende Gaeste werden gebeten, sich vorher kurz zu melden.

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: uddertreffen (Arson,  9. Mar 2013, 13:42:33):
~#! rn=Arson rt=1361544516 rg=treffen.bekanntmachungen
~#! tid=1361544516
hey, ich wollte noch mal an nechsten samstag erinnern, bis jetzt kamen noch
keine zusagen. falls termin oder lokalitaet nicht passt generell aber
interesse an soeinem treffen bestehtwuerde ich mich auch ueber eine kurze
nachricht freuen, damit wir was anderes organisieren koennen.

lg lukas alias arson

-----------------------------------------------------------------------------



Re: Re: uddertreffen (Zesstra,  9. Mar 2013, 13:52:08):
~#! rn=Arson rt=1362832953 rg=treffen.bekanntmachungen
~#! tid=1361544516
Ich haette zwar groesses Interesse, aber die Anreise aus Stuttgart ist etwas
weit, zumal ich an einem ganz anderen Ort sein muss. Da wuerde aber ein
Wechsel der Lokalitaet auch nicht helfen...

Zesstra

-----------------------------------------------------------------------------



KA Statis 21.3. bis 28.3.2013 (Gingko, 15. Mar 2013, 10:58:29):
Das La Dolce Vita als Stati-Lokalitaet haben wir nochmals um eine Woche
verschoben. Somit sind die naechsten beiden Termine:
21.03.2013 Yasmin - Ettlingen, Marktstr. 16
28.03.2013 La Dolce Vita - www.la-dolcevita.de

Beginn wie immer 20:00h
schoene Gruesze, Gingko

-----------------------------------------------------------------------------



KA Statis 04.04.-25.04.13 (Gingko, 31. Mar 2013, 20:06:39):
Die naechsten vier Karlsruhe-Stati-Lokalitaeten wurden festgelegt:
04.04.13 Kouros      www.restaurant-kouros.de
11.04.13 Shalimar    Leopoldstr. 28, Ettlingen
18.04.13 El Taquito  www.el-taquito.de
25.04.13 Wolfsbraeu  www.wirtshauswolfbraeu.de

Beginn wie immer 20:00h

Gruesze,gingko.

-----------------------------------------------------------------------------



Re: uddertreffen (Perdita,  2. Apr 2013, 21:43:50):
~#! rn=Arson rt=1361544516 rg=treffen.bekanntmachungen
~#! tid=1361544516
Hallo Arson
Die meisten Hamburger Mudder, die ich kenne, sind Ex-Mudder (so wie ich).
Die werden vermutlich hier nicht mehr mitlesen.
Mit einigen habe ich aber noch sporadisch Kontakt, und wir haben kuerzlich mal
ueberlegt, uns wieder zu treffen (siehe mein Artikel in der Rubrik "Treffen").
Erst danach habe ich deinen Artikel hier gelesen und gesehen, dass du (wohl
vergeblich?) versucht hast, ein Treffen zu organisieren...
Vielleicht klappt es ja diesmal...
Wir versuchen's jedenfalls :-)
Schoene Gruesse
Perdita

-----------------------------------------------------------------------------



Stammtisch in Bochum am 07.04.2013 (Arathorn,  3. Apr 2013, 23:11:24):
Hallo zusammen,

am kommenden Sonntag findet wieder der Fruehstuecks-Stammtisch im 
Mandragora in Bochum statt. Start wie ueblich gegen 11:30 Uhr; von 
auswaerts anreisende Gaeste werden gebeten, sich vorher kurz zu melden.

Adresse: Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA goes Flammkuchen 6.7. (Croft,  6. Apr 2013, 14:01:33):
Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am 6. Juli
freihalten.  Ort steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 6.7. (Roadrunner,  6. Apr 2013, 16:17:48):
~#! rn=Croft rt=1365249693 rg=treffen.bekanntmachungen
~#! tid=1365249693
warum muessen eigentlich alle relevanten veranstaltungen dieses jahr
ausgerechnet an diesem ersten juliwochenende terminiert werden? Da ist das TFF
rudolstadt. und selbst wenn dies nicht waere haette ich die Auswahl zwischen
bisher 2 weiteren Events.

*grummel* 

RR
*

-----------------------------------------------------------------------------



"Stammtisch" in Hamburg am 12.04.2013 (Perdita,  8. Apr 2013, 21:43:45):
Nachdem die Umfrage ein Verhaeltnis von 7:5 ergeben hat, steht als Termin fuer
unser (Ex-)Muddertreffen in Hamburg jetzt
Freitag, der 12.04.2013
fest. Treffpunkt im Schachcaf Ruebenkamp (http://www.schachcafe-hamburg.de) um
19 Uhr. Tisch ist reserviert auf "Morgengrauen".
Es freut sich
Perdita

-----------------------------------------------------------------------------



Stammtisch in Bochum am 14.4.2013 (Bugfix, 13. Apr 2013, 21:32:09):
Moin,

Morgen findet mal wieder der Fruehstuecksstammtisch imMandragora in Bochum 
statt. Start etwa 11:30.

Adresse: Konrad-Adenauer-Platz 1.

Kommet zu hauf.

Xut*

-----------------------------------------------------------------------------



KA Statis 2.5.-6.6.13 (Croft, 25. Apr 2013, 12:17:32):
02.05.13 Beim Griechen - Steinmannstr. 1, Rueppurr
09.05.13 Spieleabend
16.05.13 Marktluecke - www.karlsruhermarktluecke.de
23.05.13 Brayhead - www.brayhead.de
30.05.13 San Marco - www.sanmarco-ka.de
06.06.13 Brauhaus Moninger - www.brauhaus-moninger.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 28.4. (Humni, 27. Apr 2013, 19:45:36):
Huhu ihr,

morgen ist es nun schon 14 Tage her, dass der letzte Stammtisch im Mandragora
standfand, in Bochum. Darum haben wir beschlossen, dass es Zeit fuer einen
neuen ist.

Morgen. Ab 11 Uhr. Wird vielleicht jemand da sein. Ich aber nicht, Miril und
ich werden wohl eher gegen 13 Uhr kommen.

Bis dann!

Humni

-----------------------------------------------------------------------------



Muddertreffen in Erlangen am 11.05. (Gulahr, 29. Apr 2013, 20:06:34):
Moin zusammen,

es wird am Abend vom 11.05. ein Muddertreffen in Erlangen geben. Bisher dabei
sind Nefis, Soynada, Xutelius, Cutter und ich. Eventuell kommen noch Nevada
und Demonlord. Genaue Lokalitaet steht noch nicht fest. 

Soweit ich weiss, gibt's da in der Gegend ja noch ein paar Mudder, wir wuerden
uns freuen, wenn noch jemand Lust hat zu kommen. Bei Interesse einfach bei mir
melden :-)

Gruesse
Gulahr

-----------------------------------------------------------------------------



Berliner MUD-Brunch-Stati am 19.05. (Gloinson, 29. Apr 2013, 20:49:18):
Huhu,

zum Anlass der bodenseealemannischen Besuchsreihe unter dem Motto 'Schwaben
pruefen, was Berliner mit ihren Steuern anstellen' rufe ich hiermit einen
Brunch-StaTi aus.

Ort:  Die Turnhalle, HolteistraCe 6-9; 10245 Berlin
Zeit: Sonntag, 19. Mai 2013; ab 10 Uhr (ortsbedingt nur bis 14 Uhr)

http://dieturnhalle.de/dieturnhalle/

Koemmet zu Hauf. Bringet Kinder und anderes essbares Geraet mit!

Reserviert ist momentan fuer 10 Erwachsene draussen.


-----------------------------------------------------------------------------



Nochmal Stammtisch in Bochum, 5.5.2013 (Humni,  4. Mai 2013, 20:52:11):
Huhu,

morgen ist der 5.5. - das ist ein Tag nach dem 4.5. und ein Tag vor dem 6.5.
Da das furchtbar lustig ist, gibt es diesmal auch an diesem Tag im Manragora
ab 11 Uhr (wobei viele erst ab 13 Uhr kommen werden) einen Brunchstammtisch
ohne Rueckensteakt Poivre, was ja nun eigentlich gar nicht geht, aber leider
Tatsache ist.

Also, kommet zu Hauf! Auch wenn ihr letzte Woche schon da wart: Diese Woche
wird es noch besser, schoener, breiter! Wir auch.

Humni

-----------------------------------------------------------------------------



Berliner MUD-Brunch-Stati am 16.06. (Gloinson, 20. Mai 2013, 16:54:47):
Huhu,

die bodenseealemannischen Besuchsreihe wird fortgesetzt, da dieses
Mal das Fehlen von 'Weckle' und 'Veschperle' beanstandet wurde. Die
Berliner haben jetzt einen Monat, diese Versaeumnisse zu beheben
und die Berliner Alt-Nichtmehrmudder koennen in dieser Zeit ihre
Kinder an das Textmedium gewoehnen.

Auf ein leckeres Neues, Sonne haben wir auch wieder bestellt:

Ort:  Die Turnhalle, HolteistraCe 6-9; 10245 Berlin
Zeit: Sonntag, 16. Juni 2013; ab 10 Uhr (bis 15 Uhr)

http://dieturnhalle.de/dieturnhalle/

Koemmet zu Hauf. Bringet Kinder und anderes essbares Geraet mit!

Reserviert ist momentan fuer 12 Erwachsene draussen auf 'Morgengrauen'.


-----------------------------------------------------------------------------



KA Statis 13.6.-18.7. (Croft,  7. Jun 2013, 09:32:33):
13.06.13 Kouros - www.restaurant-kouros.de
20.06.13 Marktluecke - www.karlsruhermarktluecke.de
27.06.13 Loewenbraeukeller - www.loewenbraeukeller.de
04.07.13 Brayhead - www.brayhead.de
11.07.13 San Marco - www.sanmarco-ka.de
18.07.13 Rim Wang - www.rim-wang.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA goes Flammkuchen 6.7. (Croft, 11. Jun 2013, 22:52:57):
Repost, da die Ankuendigung expired ist:
Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am 6. Juli
freihalten.  Ort steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 16.06.2013 (Arathorn, 15. Jun 2013, 18:05:12):
Hallo zusammen!

Morgen ist wieder Stammtisch im Mandragora in Bochum, Konrad-Adenauer-
Platz 1, Start wie ueblich irgenwann gegen 11:00 Uhr.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 13.6.-18.7. (Croft, 28. Jun 2013, 08:49:21):
~#! rn=Croft rt=1370590353 rg=treffen.bekanntmachungen
~#! tid=1370590353
Die noch ausstehenden Termine wurden einer Rotation unterzogen:

04.07.13 Rim Wang - www.rim-wang.de
11.07.13 Brayhead - www.brayhead.de
18.07.13 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 6.7. (Croft, 28. Jun 2013, 08:55:08):
~#! rn=Croft rt=1370983977 rg=treffen.bekanntmachungen
~#! tid=1370983977
Dem aktuellen Stand der Dinge nach geht es nach Seltz in die Auberge de la
Foret ( http://aubergeforet.free.fr/ueberuns_d.htm ).  Wer mitkommen
moechte sollte sich bis naechste Woche Mittwoch gemeldet haben.

Croft

-----------------------------------------------------------------------------



WOA-Stati (Zesstra, 10. Jul 2013, 23:25:55):
Achja. Ich glaube, am 31.7. gibt es auf dem Wacken Open Air wieder einen
MG-Stammtisch - vermutlich im Biergarten oder Wackinger Biergarten. ;-)
Details nach Absprache, also bitte melden.

Zesstra

-----------------------------------------------------------------------------



KA Statis 25.7.-5.9. (Croft, 19. Jul 2013, 11:43:55):
25.07.13 Beim Griechen - Steinmannstr. 1, Rueppurr
01.08.13 Marktluecke - www.karlsruhermarktluecke.de
08.08.13 El Taquito - www.el-taquito.de
15.08.13 FG1 - www.fg-eins.de
22.08.13 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
29.08.13 San Marco - www.sanmarco-ka.de
05.09.13 Shalimar - Leopoldstrasse 28, Ettlingen

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: WOA-Stati (Croft, 19. Jul 2013, 11:47:32):
~#! rn=Zesstra rt=1373491555 rg=treffen.bekanntmachungen
~#! tid=1373491555
Wir werden auch noch einen Karlsruher W:O:A-Sonder-Stammtisch abhalten.
Allerdings nicht am Mittwoch um dem MG-Stammtisch keine Konkurrenz zu
machen.
Details nach Absprache, also bitte melden.

Croft

-----------------------------------------------------------------------------



StaTi Koeln? (Troshe,  2. Aug 2013, 10:05:00):
Hallo, ich mein haett ein paar mal Koeln beim LogIn gesehen. Besteht Interesse
an einem StaTi in Koeln? Bei Interesse bitte mich mal per Post ingame
anschreiben, danke.

LG Troshe

-----------------------------------------------------------------------------



17.08.2013: Fruehstueck in Bochum (Arathorn, 17. Aug 2013, 23:11:43):
Hallo zusammen,

ja, etwas kurzfristig, dennoch: morgen ist endlich wieder einmal ein freier
Termin fuer einen Fruehstuecks-Stati in Bochum. Start ist gegen 11:30 Uhr,
und wir treffen uns wie immer im Mandragora, Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 25.7.-5.9. (Croft,  4. Sep 2013, 10:00:17):
~#! rn=Croft rt=1374227035 rg=treffen.bekanntmachungen
~#! tid=1374227035
Da das Shalimar morgen nicht offen ist, geht es nochmal in die Marktluecke.
05.09.13 Marktluecke - www.karlsruhermarktluecke.de

Croft

-----------------------------------------------------------------------------



KA Statis 12.9.-31.10. (Croft,  7. Sep 2013, 11:54:52):
12.09.13 Shalimar - Leopoldstrae 28, Ettlingen
19.09.13 Beim Griechen - Steinmannstr. 1, Rppurr
26.09.13 Brayhead - www.brayhead.de
03.10.13 Punjab - www.punjab-restaurant.de
10.10.13 La Dolce Vita - www.la-dolcevita.de
17.10.13 Loewenbraeukeller - www.loewenbraeukeller.de
24.10.13 San Marco - www.sanmarco-ka.de
31.10.13 Marianne's Flammkuchen - www.mariannes-flammkuchen.de

Beim 3.10. besteht noch die Moeglichkeit, dass der Stati nicht im Punjab
sondern
im Mother India in Markt Schwaben ausgetragen wird.

Beginn wie immer um 20.00.

Croft

-----------------------------------------------------------------------------



29.09.2013: Fruehstueck in Bochum (Arathorn, 26. Sep 2013, 00:56:22):
Hallo zusammen,

am kommenden Sonntag ist endlich wieder ein Stammtisch in Bochum geplant.
Start ist gegen 11:30 bis 12:00 Uhr, und wir treffen uns wie immer im 
Mandragora, Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 12.9.-31.10. (Croft,  3. Okt 2013, 11:38:09):
~#! rn=Croft rt=1378547692 rg=treffen.bekanntmachungen
~#! tid=1378547692
Da die Stammtischrunde heute verhaeltnismaessig klein ist, wird der Stammtisch
ins Seng Sushi verlegt:
03.10.13 Seng - http://www.seng-sushi.de/

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



13.10.2013: Fruehstueck in Bochum (Arathorn,  8. Okt 2013, 23:32:49):
Hallo zusammen,

am kommenden Sonntag findet wieder ein Stammtisch in Bochum statt.
Start ist gegen 11:30 bis 12:00 Uhr, und wir treffen uns wie immer im 
Mandragora, Konrad-Adenauer-Platz 1.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Re: KA Statis 12.9.-31.10. (Croft, 24. Okt 2013, 15:25:10):
~#! rn=Croft rt=1380793089 rg=treffen.bekanntmachungen
~#! tid=1378547692
Und schon wieder wird der Stammtisch spontan verlegt.  Diesmal ins
Punjab:
24.10.13 Punjab - www.punjab-restaurant.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



03.11.2013: Stati in Bochum (Humni, 30. Okt 2013, 16:34:46):
Liebe Mudgemeinde,

wir werden am Sonntag, dem 03.11., wohl wieder im Mandragora anzutreffen sein.

Ort: Bochum, Mandragora, Bermudadreieck
Zeit: 12:00 Uhr
Datum: 03.11.2013

Komment zuhauf.

Humni

-----------------------------------------------------------------------------



KA Statis 7.11.-19.12. (Croft,  4. Nov 2013, 11:54:08):
07.11.13 Pizzahaus - Rintheimer Strasse 2
14.11.13 El Taquito - www.el-taquito.de
21.11.13 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
28.11.13 Jasmin - Marktstr. 16, Ettlingen
05.12.13 Beim Griechen - Steinmannstr. 1, Rueppurr
12.12.13 Il Caminetto - Kronenstrasse 5
19.12.13 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20.00.

Croft

-----------------------------------------------------------------------------



10.11.2013: Fruehstueck in Bochum (Arathorn,  9. Nov 2013, 16:13:01):
Hallo zusammen,

da wir einen auswaertigen Gast begruessen duerfen, haben wir uns entschieden,
uns morgen ab ca. 12:00 Uhr wieder einmal im Mandragora zu treffen.
Adresse wie immer Konrad-Adenauer-Platz 1.

Kommet zuhauf! :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



24.11.2013 Bochum (Humni, 23. Nov 2013, 23:13:06):
Liebe Angehoerigen des Muds,
Spieler und Seher,
Magier,
Goetter!

Es ist wieder an der Zeit.

Wir treffen uns zu einem unglaublichen Brunchstammtisch in Bochum, im
Mandragora. Dieses unglaubliche Ereignis wird sich am 24.11.2013 ab ca. 11 Uhr
begeben, wobei viele, so auch der Ersteller des Artikels, erst spaeter kommen
wird.

Seid befohlen zuhauf zu kommen.

Humni

-----------------------------------------------------------------------------



KA Statis 2.1.-20.2. (Croft, 20. Dez 2013, 15:55:48):
26.12.13 Entfaellt
02.01.14 Kouros - www.restaurant-kouros.de
09.01.14 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
16.01.14 San Marco - www.sanmarco-ka.de
23.01.14 Loewenbraeukeller - www.loewenbraeukeller.de
30.01.14 Lago Bowling-Center - www.lago-bowling.de
06.02.14 Shalimar - Leopoldstrasse 28, Ettlingen
13.02.14 Badisch Brauhaus - www.badisch-brauhaus.de
20.02.14 El Taquito - www.el-taquito.de 

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA Statis 2.1.-20.2. (Croft, 27. Dez 2013, 22:10:04):
~#! rn=Croft rt=1387551348 rg=treffen.bekanntmachungen
~#! tid=1387551348
Der zweite Karlsruher Stammtisch am 2.1.2014 findet uebrigens im
Landhaus Brunnenhof in Mechernich-Holzheim statt (www.brunnenhof.biz).
Beginn vermutlich gegen 20:00.

Croft

-----------------------------------------------------------------------------



Re: Re: KA Statis 2.1.-20.2. (Vanion, 27. Dez 2013, 22:44:50):
~#! rn=Croft rt=1388178604 rg=treffen.bekanntmachungen
~#! tid=1387551348
Der Koeln/Bonner Stati tagt uebrigens am 02.01. zusammen mit dem KA Stati.
Kommet zuhauf.

V*, Ex-Bonner.

-----------------------------------------------------------------------------



Re: KA Statis 2.1.-20.2. (Croft,  2. Jan 2014, 11:49:05):
~#! rn=Croft rt=1387551348 rg=treffen.bekanntmachungen
~#! tid=1387551348
Da das Kouros heute geschlossen ist, wird der Stammtisch verlegt:
02.01.14 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de

Croft

-----------------------------------------------------------------------------



Stati Bochum 19.01.2014 (Arathorn, 18. Jan 2014, 00:17:46):
Hallo zusammen,

nach einer laengeren Pause findet am kommenden Sonntag wieder ein Stammtisch
in Bochum statt. Ort des Geschehens ist wie immer das Mandragora im
Bermudadreieck, Start ist vermutlich so ab 11:30 Uhr oder so, dafuer 
diesmal mit einem auswaertigen Sondergast. :-)

Kommet zuhauf!

Arathorn.

-----------------------------------------------------------------------------



Re: KA Statis 2.1.-20.2. (Croft, 27. Jan 2014, 13:47:16):
~#! rn=Croft rt=1387551348 rg=treffen.bekanntmachungen
~#! tid=1387551348
Und die naechste Aenderung:
30.01.14 Marktluecke (www.karlsruhermarktluecke.de)

Das Lago wird nach hinten verschoben.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati Bochum 16.02.2014 (Arathorn, 13. Feb 2014, 21:23:58):
Hallo zusammen,

nach einer Pause findet am kommenden Sonntag wieder ein Stammtisch
in Bochum statt. Ort des Geschehens ist wie immer das Mandragora im
Bermudadreieck, Start ist vermutlich so ab 11:30 Uhr oder so, dafuer 
diesmal mit einem auswaertigen Sondergast. :-)

Kommet zuhauf!

Arathorn.

-----------------------------------------------------------------------------



Stammtisch in Hamburg 28.03.2014 (Vorankuendigung) (Perdita, 13. Feb 2014, 22:03:46):
Hallo liebe Mudder aus Hamburg und Umgebung
Ein paar Ex- oder Nur-noch-selten-Mudder haben beschlossen, mal wieder einen
Stammtisch zu machen.
Termin wird am 28. Maerz sein, Zeit und Ort werden noch naeher bestimmt.
Also merkt euch schonmal den Termin vor
Liebe Gruesse
Perdita

-----------------------------------------------------------------------------



KA StaTis 27.2.-24.4. (Croft, 20. Feb 2014, 23:01:46):
Und die naechsten neun Termine:
27.02.14  La Cage - www.lacage.de
06.03.14  Kouros - www.restaurant-kouros.de
13.03.14  Marktluecke - www.karlsruhermarktluecke.de
20.03.14  San Marco - www.sanmarco-ka.de
27.03.14  Lago Bowling-Center - www.lago-bowling.de
03.04.14  Shalimar - Leopoldstrae 28, Ettlingen
10.04.14  Loewenbraeukeller - www.loewenbraeukeller.de
17.04.14  Beim Griechen - Steinmannstr. 1, Rppurr
24.04.14  Marianne's Flammkuchen - www.mariannes-flammkuchen.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: Stammtisch in Hamburg 28.03.2014 (Vorankuendigung) (Perdita, 19. Mar 2014, 20:14:20):
~#! rn=Perdita rt=1392325426 rg=treffen.bekanntmachungen
~#! tid=1392325426
So, liebe Mudder aus dem hohen Norden, langsam wird's ernst...
Naechste Woche Freitag wollen wir uns in Hamburg treffen.
Damit ich in etwa weiss, fuer wie viele Personen ich einen Tisch reservieren
muss, moechte ich euch bitten, euch unter http://doodle.com/6icipdqpuqvcm5n2
in die Umfrage einzutragen.
Waere schoen, wenn ich bis zum Wochenende eine ungefaehre Teilnehmerzahl
haette.
Genaue Uhrzeit und Ort folgen dann ebenfalls am Wochenende.
Ich freue mich auf viele Teilnehmer!
Liebe Gruesse
Perdita

-----------------------------------------------------------------------------



Re: Re: Stammtisch in Hamburg 28.03.2014 (Vorankuendigung) (Perdita, 24. Mar 2014, 20:53:20):
~#! rn=Perdita rt=1395256460 rg=treffen.bekanntmachungen
~#! tid=1392325426
So, hier nun noch die letzten Daten
Treffpunkt wie letztes Jahr im Schachcaf Ruebenkamp, Tisch ist ab 19 Uhr
reserviert.
Wer sich noch nicht bei doodle eingetragen hat, moege dies bitte
schnellstmoeglich nachholen!
Ich freue mich!
Perdita

-----------------------------------------------------------------------------



Re^3: Stammtisch in Hamburg 28.03.2014 (Vorankuendigung) (Perdita, 24. Mar 2014, 20:54:33):
~#! rn=Perdita rt=1395690800 rg=treffen.bekanntmachungen
~#! tid=1392325426
ach so, Tisch ist auf "Morgengrauen" reserviert. Und es sollte natuerlich
Schachcafe heissen.

-----------------------------------------------------------------------------



Stati in Bochum am 6.4.2014 (Miril,  5. Apr 2014, 18:13:35):
Huhu,
wie meistens erst in letzter Minute hier die Ankuendigung fuer den Bochumer
Stammtisch:
Wir treffen uns morgen, d.h. am 6.4.2014 im Mandragora in Bochum. Ab 12 Uhr
koennte jemand da sein.

Kommet zuhauf.

Miril

-----------------------------------------------------------------------------



KA StaTis 1.-15.5. (Croft, 26. Apr 2014, 09:17:06):
01.05.14 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
08.05.14 Oishii - www.oishii-karlsruhe.de
15.05.14 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 27.04. (Humni, 27. Apr 2014, 12:28:44):
Huhu ihr,

heute (jetzt) ist Stammtisch im Mandragora.

Ja, wir haetten das frueher sagen koennen. Aber wir haben es ueberhaupt getan.
So.

Bis gleich.

Humni
nach Diktat verreist

-----------------------------------------------------------------------------



Berliner MUD-Brunch-StaTi Juni 2014 (Gloinson, 30. Apr 2014, 16:08:39):
Anlaesslich des gestern im MUD zelebrierten Reboots besuchen wir am
Pfingstmontag Berlin. Vorgeschobener Grund aus dem Weg: es geht natuerlich
darum, euch zu treffen und beim Pfingstmontag-Brunch viel zu essen. Vor allem
letzteres.

Koemmet zu Hauf!

Bitte meldet euch kurz bei mir, wenn ihr zu kommen plant (die bereits
Angerufenen aussen vor), damit ich dem Laden Zahlen nachmelden kann.

Ort:
Die Turnhalle
Holteistr. 6-9
10245 Berlin

Zeit:
* ab 10 Uhr auf Becker reserviert, bis 15 Uhr Essen
  (wir werden gegen 10-11 Uhr da sein und entsprechend abreisen)


-----------------------------------------------------------------------------



KA StaTis 22.5.-29.6. (Croft, 15. Mai 2014, 23:33:59):
22.05.14 El Taquito - www.el-taquito.de
29.05.14 Purino - www.purino.de
05.06.14 Multi Kulti - www.altebank.de (alternativ Pizzahaus bei schlechtem
Wetter)
12.06.14 Kouros - www.restaurant-kouros.de (alternativ Marktluecke bei
schlechtem Wetter)
19.06.14 Brayhead - www.brayhead.de
26.06.14 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum, 25.5. (Humni, 24. Mai 2014, 21:07:35):
Am 25.5. ist Towel Day.

Aus Anlass dieses Tages werden wir Handtuecher anziehen.

Damit gehen wir ins Mandragora und treffen uns dort gegen 12 Uhr.

Wir werden auch andere Dinge tragen.

Aber bestimmt auch Handtuecher.

Humni

-----------------------------------------------------------------------------



Re: KA StaTis 22.5.-29.6. (Croft, 28. Mai 2014, 12:19:37):
~#! rn=Croft rt=1400189639 rg=treffen.bekanntmachungen
~#! tid=1400189639
Das Wetter ist morgen als nicht gut genug befunden worden.  Ergo findet
der StaTi im Pizzahaus statt.

Croft

-----------------------------------------------------------------------------



Re: Re: KA StaTis 22.5.-29.6. (Croft, 29. Mai 2014, 10:22:29):
~#! rn=Croft rt=1401272377 rg=treffen.bekanntmachungen
~#! tid=1400189639
Ah, die Alternativen waren verrutscht:
29.05.14 Pizzahaus (Rintheimer Strasse 2)
05.06.14 Multi Kulti - www.altebank.de (alternativ Marktluecke bei schlechtem
Wetter)
12.06.14 Kouros - www.restaurant-kouros.de
19.06.14 Brayhead - www.brayhead.de
26.06.14 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de

Croft

-----------------------------------------------------------------------------



Re^3: KA StaTis 22.5.-29.6. (Croft, 26. Jun 2014, 08:29:21):
~#! rn=Croft rt=1401351749 rg=treffen.bekanntmachungen
~#! tid=1400189639
Auf Grund des Spiels heute wird der Stati spontan zu Pardauz nach Hause
verlegt.

Croft

-----------------------------------------------------------------------------



KA StaTi 3.7. (Croft, 27. Jun 2014, 09:10:07):
03.07.14 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de

Das Wolfsbraeu wird naechste Woche nachgeholt.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 29.06. (Arathorn, 27. Jun 2014, 23:43:26):
Hallo zusammen,

dieses WE ist nach einer Pause mal wieder Fruehstuecks-Stati in Bochum.
Ort: Mandragora, Konrad-Adenauer-Platz 1 (Bermuda-Dreieck).
Zeit: so ca. ab 12:00 Uhr.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA StaTis 10.7.-28.8. (Croft,  4. Jul 2014, 11:00:26):
Die naechsten Termine:
10.07.14 Marktluecke - www.karlsruhermarktluecke.de
17.07.14 San Marco - www.sanmarco-ka.de
24.07.14 Vogel Hausbraeu Ettlingen - www.vogelbraeu.de
31.07.14 Beim Griechen - Steinmannstr. 1, Rppurr
07.08.14 Multi Kulti - www.altebank.de
14.08.14 Shalimar - Leopoldstrae 28, Ettlingen
21.08.14 FG1 - www.fg-eins.de
28.08.14 Marktluecke - www.karlsruhermarktluecke.de 

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 10.7.-28.8. (Saray,  5. Jul 2014, 23:25:56):
~#! rn=Croft rt=1404464426 rg=treffen.bekanntmachungen
~#! tid=1404464426
Stati am 31. Juli? Gibts in Karlsruhe etwa Leute, die nicht auf Wacken sind?
:-D
Saray

-----------------------------------------------------------------------------



Re: Re: KA StaTis 10.7.-28.8. (Gingko, 16. Jul 2014, 09:20:33):
~#! rn=Saray rt=1404595556 rg=treffen.bekanntmachungen
~#! tid=1404464426
Ja, meine Gummistiefel haben ein Loch ;-)

Gingko.

-----------------------------------------------------------------------------



Re: KA StaTis 10.7.-28.8. (Gingko, 18. Jul 2014, 13:41:15):
~#! rn=Croft rt=1404464426 rg=treffen.bekanntmachungen
~#! tid=1404464426
Der KA StaTi fuer naechste Woche 24.7. wird nach Hattingen verlegt.

Gingko

-----------------------------------------------------------------------------



Stat in Bochum am 20.7. (Humni, 19. Jul 2014, 21:32:01):
Liebe Mitmudder,

morgen findet um 12 Uhr ein Brunch im Mandragora statt.

Es wird ein Tisch reserviert sein.

Alle muessen kommen.

Sonst seid IHR das Essen.

Harhar.

Ein Drache

-----------------------------------------------------------------------------



Re: Stat in Bochum am 20.7. (Zook, 20. Jul 2014, 16:38:45):
~#! rn=Humni rt=1405798321 rg=treffen.bekanntmachungen
~#! tid=1405798321
Zu spaet gelesen. Waere knapp geworden. Musste gestern
Bier trinken, konnte keine MPA lesen.

Zook

-----------------------------------------------------------------------------



Re: Re: KA StaTis 10.7.-28.8. (Croft, 24. Jul 2014, 12:33:11):
~#! rn=Gingko rt=1405683675 rg=treffen.bekanntmachungen
~#! tid=1404464426
Wir gehen die Fabrica Hattingen: www.fabbrica-hattingen.de
Uhrzeit wohl so gegen 20:00.

Croft

-----------------------------------------------------------------------------



Re^3: KA StaTis 10.7.-28.8. (Zook, 24. Jul 2014, 16:32:00):
~#! rn=Croft rt=1406197991 rg=treffen.bekanntmachungen
~#! tid=1404464426
Bin wohl rechtzeitig vorher da und komme mit!

Zook

-----------------------------------------------------------------------------



Re^4: KA StaTis 10.7.-28.8. (Zook, 24. Jul 2014, 16:57:41):
~#! rn=Zook rt=1406212320 rg=treffen.bekanntmachungen
~#! tid=1404464426
Naja, mit Zeltaufbau etc. ... Haltet vll. zwei Plaetze fuer mich
frei; ich komme dann spaeter nach.

Zook

-----------------------------------------------------------------------------



Re: KA StaTis 10.7.-28.8. (Croft, 17. Aug 2014, 20:19:06):
~#! rn=Croft rt=1404464426 rg=treffen.bekanntmachungen
~#! tid=1404464426
Da das FG1 im Urlaub ist, gehen wir auf besonderen Wunsch hin zu Marianne:
21.08.14 Marianne's Flammkuchenwww.mariannes-flammkuchen.de

Bitte Zwecks Reservierung bis Dienstag melden.

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum am 31.08.2014 (Arathorn, 28. Aug 2014, 22:36:50):
Hallo zusammen,

nach laengerer Pause treffen wir uns mal wieder in Bochum zum Fruehstuecks-
Stammtisch. Wie immer im Mandragora (Konrad-Adenauer-Platz 1).
Es geht wie immer offiziell um 11:00 Uhr los, aber die ersten Teilnehmer
werden voraussichtlich erst deutlich spaeter (so um 12:00 rum) eintrudeln.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA StaTis 4.9.-2.10. (Croft, 28. Aug 2014, 22:39:04):
Die Stammtischauslosung hat folgende Resultate zu Tage gefoerdert:
04.09.14 Rim Wang - www.rim-wang.de
11.09.14 Seng - www.seng-sushi.de
18.09.14 Punjab - www.punjab-restaurant.de
25.09.14 San Marco - www.sanmarco-ka.de
02.10.14 Marktluecke - www.karlsruhermarktluecke.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 9.10.-13.11. (Croft,  3. Okt 2014, 17:43:28):
Und die naechsten Termine:
09.10.14 Pizzahaus - Rintheimer Strasse 2
16.10.14 Shalimar - Leopoldstrae 28, Ettlingen
23.10.14 Gartenzwerg - www.gartenzwerg-karlsruhe.de
30.10.14 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
06.11.14 San Marco - www.sanmarco-ka.de
13.11.14 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 9.10.-13.11. (Croft, 16. Okt 2014, 16:35:23):
~#! rn=Croft rt=1412351008 rg=treffen.bekanntmachungen
~#! tid=1412351008
Das Shalimar hat heute abend zu.  Deswegen geht es kurzfristig ins
El Taquito (www.el-taquito.de).

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum am 19.10.2014 (Arathorn, 18. Okt 2014, 12:02:43):
Hallo zusammen,

nach laengerer Pause treffen wir uns mal wieder in Bochum zum Fruehstuecks-
Stammtisch. Wie immer im Mandragora (Konrad-Adenauer-Platz 1).
Es geht wie immer offiziell um 11:00 Uhr los, aber die ersten Teilnehmer
werden voraussichtlich erst deutlich spaeter (so um 12:00 rum) eintrudeln.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Fruehstueck in Bochum am 19.10.2014 (Zaphob, 23. Okt 2014, 14:22:20):
~#! rn=Arathorn rt=1413626563 rg=treffen.bekanntmachungen
~#! tid=1413626563
Es waere super, diese Ankuendigungen frueher als 24h vorher zu erhalten, dann
schaff ichs vielleicht auch irgendwann aus Dortmund vorbeizuschauen (so ich
ein Transportmittel finde) Danke! :)

-----------------------------------------------------------------------------



Re: Re: Fruehstueck in Bochum am 19.10.2014 (Arathorn, 23. Okt 2014, 19:33:09):
~#! rn=Zaphob rt=1414066940 rg=treffen.bekanntmachungen
~#! tid=1413626563
Oh, noch ein Dortmunder? Aeh, ja. Wir bemuehen uns fuers naechste Mal. 
Sorry :-)

Arathorn.

-----------------------------------------------------------------------------



Re^3: Fruehstueck in Bochum am 19.10.2014 (Zesstra, 24. Okt 2014, 20:21:58):
~#! rn=Arathorn rt=1414085589 rg=treffen.bekanntmachungen
~#! tid=1413626563
Ich schliesse mich Zaphob an. ;-) (Auch wenn es an dem WE jetzt tatsaechlich
egal war.)

Zesstra

-----------------------------------------------------------------------------



Re: KA StaTis 9.10.-13.11. (Croft, 29. Okt 2014, 10:18:41):
~#! rn=Croft rt=1412351008 rg=treffen.bekanntmachungen
~#! tid=1412351008
Der StaTi morgen wird wohl zu Pardauz nach Hause verlegt.  Bitte passend
bei ihm melden ;-)

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum, 2.11.2014 (Humni, 30. Okt 2014, 22:31:31):
Hallo ihr,

am 2.11. (das ist ein Sonntag) wird gegessen. Und zwar Brunch. Und zwar im
Mandragora, in Bochum. Der Termin ist 11 Uhr, aber es werden wohl so ab 12 Uhr
Leute da sein.

Humni

-----------------------------------------------------------------------------



KA Sonder-StaTi 23.12. (Croft,  3. Dez 2014, 14:14:15):
Auf Grund zweier auswaertiger Gaeste gibt es am 23.12. einen speziellen
Weihnachtsstammtisch im Brayhead.  Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 8.1.-12.2.15 (Croft, 19. Dez 2014, 16:06:49):
Am 25.12. wird auf jeden Fall Weihnachtspause mit den Stammtischen gemacht.
Am 1.1.15 gibt es moeglicherweise einen Sonderstammtisch in der Eifel
bei Mechernich.  Details folgen gegebenfalls.  Ansonsten geht es im
naechsten Jahr munter weiter:
08.01.15 Marktluecke - www.karlsruhermarktluecke.de
15.01.15 Beim Griechen - Steinmannstr. 1, Rppurr
22.01.15 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
29.01.15 Il Caminetto - Kronenstrasse 5
05.02.15 El Taquito - www.el-taquito.de
12.02.15 Jasmin - Marktstr. 16, Ettlingen
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Fruehstueck in Bochum am 21.12.2014 (Arathorn, 20. Dez 2014, 18:21:36):
Hallo zusammen,

wir treffen uns zum letzten Bochumer Stati des Jahres 2014 morgen mal wieder
im Mandragora, Konrad-Adenauer-Platz 1 in Bochum. Es geht wie immer 
offiziell um 11:00 Uhr los, die ersten werden aber voraussichtlich (wie
immer) nicht vor 11:30 da sein. ;-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



MG-Stati auf dem 31c3 (Vanion, 28. Dez 2014, 18:59:26):
~#! on=Vanion ot=1419787317 og=bekanntmachungen
Liebe Mudder, 

als derzeit diensthabender goettlicher Verkuender gebe ich bekannt:
Der diesjaehrige MG-Stati findet heute, am 29.12.2014 um 21:00 Uhr in der
Lobby statt.

Goettlichen Beistand gibt es unter 5755. Ich bin unter 5754 erreichbar.

V*
PS: Lobby = da wo es (keine) T-Shirts (mehr) gibt.

-----------------------------------------------------------------------------



Re: MG-Stati auf dem 31c3 (Vanion, 28. Dez 2014, 19:00:27):
~#! rn=Vanion rt=1419789566 rg=treffen.bekanntmachungen
~#! tid=1419789566
Auf vielfachen Wunsch findet das Treffen erst um 21:45 statt.

V*
PS: Wegen fachlicher Inkompetenz wurde meines Amtes als Herald enthoben.

-----------------------------------------------------------------------------



Re: Re: MG-Stati auf dem 31c3 (Vanion, 29. Dez 2014, 11:28:03):
~#! rn=Vanion rt=1419789627 rg=treffen.bekanntmachungen
~#! tid=1419789566
Vielen Dank fuer einen tollen Stammtisch. Es war voller als erwartet. :)

V*

-----------------------------------------------------------------------------



Re^3: MG-Stati auf dem 31c3 (Vanir, 29. Dez 2014, 12:23:50):
~#! rn=Vanion rt=1419848883 rg=treffen.bekanntmachungen
~#! tid=1419789566
Wer war denn alles da? Und viel Spass noch auf dem ccc.
V.

-----------------------------------------------------------------------------



Re^4: MG-Stati auf dem 31c3 (Rumata, 29. Dez 2014, 13:01:58):
~#! rn=Vanir rt=1419852230 rg=treffen.bekanntmachungen
~#! tid=1419789566
Hach, wenn Berlin nicht so am Ende der Welt laege... :-)
Rum**

-----------------------------------------------------------------------------



Re^5: MG-Stati auf dem 31c3 (Chagall, 29. Dez 2014, 13:16:51):
~#! rn=Rumata rt=1419854518 rg=treffen.bekanntmachungen
~#! tid=1419789566
Wieso Berlin, die sind doch mittlerweile nach Hamburg ausgewandert.

MC

-----------------------------------------------------------------------------



Re^6: MG-Stati auf dem 31c3 (Rumata, 29. Dez 2014, 17:32:20):
~#! rn=Chagall rt=1419855411 rg=treffen.bekanntmachungen
~#! tid=1419789566
Wollte gerade sagen, da waren die doch vor Berlin.
Sags aber nicht. Aus Gruenden. :-)

-----------------------------------------------------------------------------



Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Perdita, 11. Feb 2015, 18:23:29):
Achtung, Sensation!
Schon nach nur etwa einem Jahr ist schon der naechste Stammtisch in Hamburg
geplant!
Angedachter Termin ist Freitag, der 20. Maerz. Details folgen.
Also, merkt euch den Termin schonmal vor!
Schoene Gruesse
Perdita

-----------------------------------------------------------------------------



KA Statis 19-26.2. (Croft, 17. Feb 2015, 23:13:31):
Erstmal nur zwei Lokale:
19.02.15 Marktluecke - www.karlsruhermarktluecke.de
26.02.15 Beim Griechen - Steinmannstr. 1, Rppurr

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Aline, 21. Feb 2015, 22:18:41):
~#! rn=Perdita rt=1423675409 rg=treffen.bekanntmachungen
~#! tid=1423675409

Da bin ich dann nach fast 11 Jahren doch mal wieder im MUD und dann gibt es
einen Stammtisch bei mir vor der Haustuer *knuddel*
Leider am Geburtstag meine Tochter :(.
Aber so wie es aussieht, werde ich versuchen mich am Abend wegzuschleichen.

GrC<Ce
Aline

-----------------------------------------------------------------------------



KA Statis 5.3.-2.4. (Croft, 27. Feb 2015, 11:08:40):
Und die naechsten Termine:
05.03.15 Pizzahaus - Rintheimer Strasse 2
12.03.15 Shalimar - Leopoldstrae 28, Ettlingen
19.03.15 Marktluecke - www.karlsruhermarktluecke.de
26.03.15 San Marco - www.sanmarco-ka.de
02.04.15 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 1.3.2015 (Arathorn, 27. Feb 2015, 19:13:43):
Moin!

Nach einer Pause gibts am kommenden Sonntag mal wieder einen Stammtisch
in Bochum, wie immer im Mandragora, Konrad-Adenauer-Platz 1, voraussichtlich
ab 11:30 bis 12:00 Uhr.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Perdita,  1. Mar 2015, 21:24:30):
~#! rn=Perdita rt=1423675409 rg=treffen.bekanntmachungen
~#! tid=1423675409
Der Stammtisch in Hamburg rueckt langsam naeher, Zeit fuer ein bisschen
Planung!
Ich habe eine Doodle-Umfrage eingerichtet und moechte euch bitten, euch
moeglichst im Laufe der kommenden Woche schon einmal einzutragen, damit ich
(wenn ich aus meinem Kurzurlaub zurueckkomme) schon einmal eine ungefaehre
Teilnehmerzahl zum Reservieren eines Tisches habe.
Die Oertlichkeit steht noch nicht 100%ig fest, wird aber vermutlich wieder das
Schachcafe am Ruebenkamp sein.
Hier nun der Link zur Doodle-Umfrage
(hoffe, das hat geklappt)

Kommet zuhauf!
Perdita

-----------------------------------------------------------------------------



Re: Re: Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Perdita,  1. Mar 2015, 21:30:55):
~#! rn=Perdita rt=1425241470 rg=treffen.bekanntmachungen
~#! tid=1423675409
hmpf, warum hat das jetzt nicht geklappt?
Mein olles Programm hat wahrscheinlich mal wieder Probleme mit Sonderzeichen
wie Schraegstrich oder Doppelpunkt. Hmpf.
Na gut, dann denkt euch nach dem doodle.com einen schoenen Schraegstrich, und
setzt dann gp5fkbh54wgvywn8 dahinter.
Das sollte es hoffentlich tun.
Perdita
*ueberihrbloedesProgrammgrummelnd*

-----------------------------------------------------------------------------



Re^3: Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Zaphob,  2. Mar 2015, 21:54:01):
~#! rn=Perdita rt=1425241855 rg=treffen.bekanntmachungen
~#! tid=1423675409
Link von Perdita zum Anklicken:

http://doodle.com/gp5fkbh54wgvywn8

-----------------------------------------------------------------------------



Stati in Bochum am 15.03.2015 (Arathorn, 13. Mar 2015, 23:15:14):
Huhu!

kommenden Sonntag treffen wir uns mal wieder zum Stati in Bochum, wie
ueblich im Mandragora, Konrad-Adenauer-Platz 1. Start ist offiziell um 
11:00 Uhr, die ersten werden aber vermutlich erst gegen 12:00 Uhr dort 
sein. ;-)

Dieses Wochenende ist sogar ein auswaertiger Gast da, also kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re^4: Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Perdita, 15. Mar 2015, 21:15:04):
~#! rn=Zaphob rt=1425329641 rg=treffen.bekanntmachungen
~#! tid=1423675409
Danke Zaphob fuer das Einstellen des vollstaendigen Links...

Hier kommen jetzt die Daten fuer Freitagabend, 20. Maerz 2015
Wir treffen uns (mal wieder) im Schachcafe Ruebenkamp, Tisch ist ab 19 Uhr
reserviert.
Wer sich noch nicht in die Doodle-Umfrage eingetragen hat, moege das bitte
bald noch tun.
Im Schachcafe ist es erfahrungsgemaess sehr voll, das heisst, wenn wir ohne
Vorankuendigung wesentlich mehr Leute werden sollten, koennte es etwas eng
werden...
Ich freue mich auf Freitag!
Perdita

-----------------------------------------------------------------------------



Re^5: Vorankuendigung Nordstammtisch in Hamburg 20.03.2015 (Perdita, 15. Mar 2015, 21:16:00):
~#! rn=Perdita rt=1426450504 rg=treffen.bekanntmachungen
~#! tid=1423675409
ach so, der Tisch ist auf "Morgengrauen" reserviert, wollte ich noch gesagt
haben.

-----------------------------------------------------------------------------



KA Statis 9.4.-21.5. (Croft,  5. Apr 2015, 10:19:36):
Und hier die naechsten Lokalitaeten:
09.04.15 Kouros - www.restaurant-kouros.de
16.04.15 Pfannenstiel - www.pfannestiel-karlsruhe.de
23.04.15 Il Caminetto - Kronenstrasse 5
30.04.15 Loewenbraeukeller - www.loewenbraeukeller.de
07.05.15 Marktluecke - www.karlsruhermarktluecke.de
14.05.15 San Marco - www.sanmarco-ka.de
21.05.15 Shalimar - Leopoldstrae 28, Ettlingen

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 12.04. (Bugfix, 11. Apr 2015, 23:25:20):
Moin,

Etwas spaet, aber immerhin.

Kommenden Sonntag ist mal wieder Stati im Mandragora in Bochum,
Konrad-Adenauer-Platz 1.

Beginn ist wie ueblich zwischen 11:00 und 12:00

Kommet zuhauf!

BF

-----------------------------------------------------------------------------



Stati beim Andreasbraeu am 12.04. (Zook, 12. Apr 2015, 20:49:45):
Moin! 

Etwas spaet, aber immerhin. Heute ist Stammtisch im Andreasbraeu
Etwas spaet, aber immerhin. Heute ist Stammtisch im Andreasbraeu in
Eggenstein-Leopoldshafen. Beginn ca. um 13.00 Uhr.

Croft, Tassram und ich kommen aber ein wenig spaeter.

Kommet zuhauf!

Zook.

-----------------------------------------------------------------------------



Stati in Bochum am 26.4. (Miril, 26. Apr 2015, 01:00:08):

Huhu,

der allseits beliebte Bochum Stammtisch im Mandragora findet nachher, also am
26.4. ab 12 Uhr im Mandra statt. Zumindest Humni und Miril sind da.

Kommet zuhauf!

Miril

-----------------------------------------------------------------------------



Stati Bochum, 10.5.2015 (Humni,  8. Mai 2015, 16:55:18):
Hallo ihr,

wieder mal ist im Mandragora Stammtisch, und zwar diesmal am 10.5.2015. Wie
immer ab 11 Uhr, und vermutlich ist der erste so ab 13 Uhr da. Also alles wie
immer, und zumindest Humni und Miril sind da.

Humni

-----------------------------------------------------------------------------



Re: Stati Bochum, 10.5.2015 (Arathorn,  8. Mai 2015, 17:04:47):
~#! rn=Humni rt=1431096918 rg=treffen.bekanntmachungen
~#! tid=1431096918
Argh! Muttertag! Da kann doch um die Zeit keiner laenger als ne halbe Stunde,
wenn ueberhaupt. :-7

Arathorn.

-----------------------------------------------------------------------------



Re: Stati Bochum, 10.5.2015 (Miril,  9. Mai 2015, 22:29:58):
~#! rn=Humni rt=1431096918 rg=treffen.bekanntmachungen
~#! tid=1431096918
Nachtrag:

Wir sind zwar da, aber vermutlich nur kurz, denn dann wollen wir hierhin:

http://www.vaporium-ruhr.de/

Falls das noch wen interessiert, sehen wir uns da morgen.

Miril

-----------------------------------------------------------------------------



KA goes Flammkuchen 12.9. (Croft, 22. Mai 2015, 08:28:14):
Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am 12. September
freihalten.  Lokal steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



KA Statis 28.5.-16.7. (Croft, 27. Mai 2015, 07:33:37):
28.05.15 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
04.06.15 El Taquito - www.el-taquito.de
11.06.15 Beim Griechen - Steinmannstr. 1, Rppurr
18.06.15 FG1 - www.fg-eins.de
25.06.15 Alter Brauhof - www.alterbrauhof.de
02.07.15 Marktluecke - www.karlsruhermarktluecke.de
09.07.15 San Marco - www.sanmarco-ka.de
16.07.15 Zum Elsternest - www.zum-elsternest.de

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Save the ... location ... and date..ish. (Vanion, 15. Jun 2015, 21:34:07):
Liebe Netzgemeinde, 

auch dieses Jahr soll er wieder stattfinden, der (2.) alljaehrliche
MorgenGrauen-Stammtisch auf dem Chaos Communication Congress im CCH Hamburg.
Abhaengig vom Vortragsprogramm koennte der Stati am 27.,28. oder 29.12.2015
stattfinden. Goettlicher Beistand ist nicht voellig ausgeschlossen.

V*

-----------------------------------------------------------------------------



Stati in Bochum am 20.6. - einem Samstag! (Humni, 20. Jun 2015, 14:39:59):
Hallo ihr,

voellig unerwartet und ganz anders als sonst und NICHT DEM SCHEMA FOLGEND
findet heute abend, nach Ruecksprache dreier Erzmagier, der Bochumer
Stammtisch statt.

NICHT IM MANDRAGORA! Sondern im Vier Winde.

Beginn: 19 Uhr.

Alle kommen dahin. Wer nicht kommt, hat Pech. Und wird gefressen. Sagt Miril.
Vermutlich darf ich das aber wieder tun.

Humni

-----------------------------------------------------------------------------



Bochumer Stati (Miril,  2. Jul 2015, 14:11:37):
Huhu!

Am Sonntag wollen wir mal wieder ein Fruehstueck im Mandra ausrufen. Zumindest
Humni und Miril wollen. 

Wo: Mandragora, Bochum
Wann: Ab 12 (sind vermutlich andere da, aber wir meist erst spaeter).

Kommet zuhauf!

Miril

-----------------------------------------------------------------------------



Re: Bochumer Stati (Arathorn,  2. Jul 2015, 21:23:28):
~#! rn=Miril rt=1435839097 rg=treffen.bekanntmachungen
~#! tid=1435839097
Hinweis an alle, die mit dem Auto hinfahren: Es ist Bochum Total, d.h.
der Konrad-Adenauer-Platz ist erschwert zu erreichen. Von Sueden her
kein Problem, aus allen anderen Richtungen ggf. tricky. Schaut euch vorher
an, welche Strassen gesperrt sind: http://www.bochum-total.de/anfahrt.html

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA Statis 23.7.-17.9. (Croft, 11. Jul 2015, 16:54:45):
Hier schon mal die weiteren Orte:
23.07.15 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
30.07.15 Marktluecke - www.karlsruhermarktluecke.de
06.08.15 Beim Griechen - Steinmannstr. 1, Rppurr
13.08.15 El Taquito - www.el-taquito.de
20.08.15 Pizzahaus - Rintheimer Strasse 2
27.08.15 Jasmin - Marktstr. 16, Ettlingen
03.09.15 Seng - www.seng-sushi.de
10.09.15 Brauhaus Moninger - www.brauhaus-moninger.de
17.09.15 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Bochumer Stammtisch (Miril, 13. Aug 2015, 20:27:49):
Huhu,

am Sonntag, den 16.8.2015 treffen wir uns mal wieder im allseits beliebten
Mandragora am Bermudadreieck. Die Ankunftszeit haengt wie immer von den
Teilnehmern ab, sprich: die meisten kommen wohl so gegen 12 Uhr, Humni und
Miril eher etwas spaeter.

Kommet zuhauf.

Miril

-----------------------------------------------------------------------------



KA goes Flammkuchen 12.9. (Croft, 21. Aug 2015, 21:28:30):
Repost:

Wer mit den ueblichen Karlsruher Verdaechtigen mit ins Elsass zum
Flammkuchenessen kommen will, moege sich den Samstagabend am 12. September
freihalten.  Lokal steht noch nicht fest.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 30.08. (Arathorn, 29. Aug 2015, 22:37:48):
Huhu,

am Sonntag, den 30.08.2015 treffen wir uns mal wieder im allseits beliebten
Mandragora am Bermudadreieck. Die Ankunftszeit haengt wie immer von den
Teilnehmern ab, sprich: die meisten kommen wohl so gegen 12 Uhr, Humni und
Miril eher etwas spaeter.

Kommet zuhauf.

Arathorn.

-----------------------------------------------------------------------------



Re: KA goes Flammkuchen 12.9. (Croft, 29. Aug 2015, 23:51:01):
~#! rn=Croft rt=1440185310 rg=treffen.bekanntmachungen
~#! tid=1440185310
Aktuell ist die Idee mal wieder in die Ecurie du Rhin in Neuhaeusel zu
gehen.

Croft

-----------------------------------------------------------------------------



KA StaTis 24.9.-5.11. (Croft, 21. Sep 2015, 21:50:19):
Wir haben mal wieder gewuerfelt:

24.09.15 FG1 - www.fg-eins.de
01.10.15 Shalimar - Leopoldstrae 28, Ettlingen
08.10.15 Marktluecke - www.karlsruhermarktluecke.de
15.10.15 Beim Griechen - Steinmannstr. 1, Rueppurr
22.10.15 Wirtshaus Wolfsbraeu - www.wirtshauswolfbraeu.de
29.10.15 Werkbank - werkbank-karlsruhe.de
05.11.15 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum (Arathorn, 23. Sep 2015, 15:08:25):
Huhu,

am Sonntag, dem 27.09.2015 treffen wir uns mal wieder im allseits beliebten
Mandragora am Bermudadreieck. Die Ankunftszeit haengt wie immer von den
Teilnehmern ab, sprich: die meisten kommen wohl so gegen 12 Uhr, Humni und
Miril eher etwas spaeter.

Kommet zuhauf.

Gruss, Arathorn

-----------------------------------------------------------------------------



Stammtisch in Bochum (Dunst,  3. Okt 2015, 20:32:00):
Hallo :)

w
sw
am morgigen Sonntag 04.10.2015 treffen wir uns wieder im Mandragora im
Bermudadreieck. Ankunftszeit wie immer variabel ab gegen 12 Uhr.

Kommet zuhauf.

Gruss
Dunst.

-----------------------------------------------------------------------------



Stati 21.10. in Zesstras Zelt (Zesstra, 20. Okt 2015, 20:15:56):
Huhu,

ich kuendige mal einen total seltenen Stati an.
Ich erhalte morgen hohen Besuch und aus eben jenem Anlass findet auch ein
Stati statt. Und zwar ab 20:00 bei mir zuhause.
Wer in der Naehe ist, moege sich bitte bei mir melden, was so die weltlichen
Koordinaten sind. ;-)

Zesstra

-----------------------------------------------------------------------------



KA StaTis 12.11.15-7.1.16 (Croft,  6. Nov 2015, 00:25:22):
So, und hier die naechsten Lokalitaeten:
12.11.15 Pizzahaus - Rintheimer Strasse 2
19.11.15 Marktluecke - www.karlsruhermarktluecke.de
26.11.15 Carls Wirtshaus - www.carls-wirtshaus.de
03.12.15 Kouros - www.restaurant-kouros.de
10.12.15 El Taquito - www.el-taquito.de
17.12.15 FG1 - www.fg-eins.de
24.12.15 Weihnachtspause
31.12.15 Silvesterpause(?)
07.01.16 Marianne's Flammkuchen - www.mariannes-flammkuchen.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Bochumer Stammtisch (Miril,  7. Nov 2015, 15:29:13):
Morgen, also am 8.11.2015 findet wieder der Bochumer Stammtisch im allseits
beliebten Mandragora statt. Zumindest Humni, Miril und Jambo werden dort sein.
Wer noch?

Kommet zuhauf!

Miril

-----------------------------------------------------------------------------



Stammtisch in Bochum (Arathorn, 26. Nov 2015, 22:09:29):
Hallo zusammen :-)

am kommenden Sonntag, dem 29.11.2015 treffen wir uns wieder im Mandragora
im Bermudadreieck. Startzeit ist wie immer offiziell ab 11:00 Uhr, die 
ersten werden aber (auch wie immer) erst ab 12:00 Uhr auftauchen. ;-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA StaTis 14.1.-25.2. (Croft,  8. Jan 2016, 13:34:08):
Die naechsten Termine:
14.01.16 San Marco - www.sanmarco-ka.de
21.01.16 Loewenbraeukeller - www.loewenbraeukeller.de
28.01.16 Beim Griechen - Steinmannstr. 1, Rppurr
04.02.16 Lago Bowling-Center - www.lago-bowling.de
11.02.16 Marktluecke - www.karlsruhermarktluecke.de
18.02.16 Rim Wang - www.rim-wang.de
25.02.16 Pizzahaus - Rintheimer Strasse 2

Das Pizzahaus steht da erstmal unter Vorbehalt.  Mal schauen ob wir noch
einen anderen Italiener aufsuchen werden.

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum (Humni,  8. Jan 2016, 18:00:01):
Huhu,

am Sonntag, dem 10.1.2016, wird es Essen geben.

Aber nicht in Essen, auch wenn der Name das suggeriert, sondern eine Stadt
weiter, in Bochum.

Im Mandragora.

Wie immer ab 11 Uhr. Dann kommt aber noch niemand, also eher so gegen 12. Aber
der Stammtisch beginnt um 11.

Kommet zuhauf!

Humni

-----------------------------------------------------------------------------



Stammtisch-Planung Hamburg (Perdita,  6. Feb 2016, 13:09:05):
Hallo liebes Mudder-Volk!
Wir planen mal wieder einen Stammtisch in Hamburg!
Termin-Umfrage findet ihr hier:
http://doodle.com/poll/kfhpr7f8cwy7d4mf
In ca. 2 Wochen werte ich aus und teile den endgueltigen Termin mit.
Wir freuen uns auf zahlreiche Teilnahme!
LG Perdita

-----------------------------------------------------------------------------



16.5.: Pfingstmonstag in Berlin (Gloinson, 12. Feb 2016, 10:20:26):
Moinsen,

anlaesslich [eines generischen und erfundenen Grundes] rufe ich fuer
Pfingstmontag, den 16.5.2016 in Berlin einen StaTi aus.
Es geht natuerlich wieder einmal darum, nach der Pause 2015 (aber Spanien war
toll!) alle zu treffen und beim Brunch ganz viel zu essen. Vor allem
letzteres.

Koemmet zu Hauf!

Bitte meldet euch kurz bei mir, wenn ihr zu kommen plant, damit ich dem
Laden Zahlen nachmelden kann.

Ort:
Die Turnhalle
Holteistr. 6-9
10245 Berlin

Zeit:
* ab 10 Uhr auf Becker reserviert, bis 15 Uhr Essen

Gloin(son)


-----------------------------------------------------------------------------



Bochumer Stammtisch (Humni, 12. Feb 2016, 20:51:35):
Hallo ihr,

wie ueblich: Am 14.2.2016 treffen sich Personen im Mandragora zum Behufe des
Fruehstueckbrunches von anwesenden Person.. nein. Natuerlich von Brunch.

Niemand wird gefressen werden von Drachen. Glaube ich. 11 Uhr gehts los, auch
wenn dann noch niemand da ist, vermutlich wird es so 12, bis die Leute kommen.

Kommet zuhauf, ihr seid leck... willkommen.

Humni

-----------------------------------------------------------------------------



Re: KA StaTis 14.1.-25.2. (Croft, 17. Feb 2016, 23:26:50):
~#! rn=Croft rt=1452256448 rg=treffen.bekanntmachungen
~#! tid=1452256448
Nachdem wir schon letzte Woche auf Grund der Reservierungsblockade statt
in der Marktluecke im FG1 waren, geht es diese Woche in die Marktluecke.
Naechste Woche: t.b.d. ob Italiener oder Rim Wang oder was auch immer.

Croft

-----------------------------------------------------------------------------



KA StaTis 25.02. und 03.03. (Tassram, 18. Feb 2016, 22:29:47):
25.02.16 Pizzeria La Terrazza Wachhausstrasse 15 
         - http://mittagstisch-ka.de/restaurant/la-terrazza/
03.03.16 Rim Wang - www.rim-wang.de

Tassram

-----------------------------------------------------------------------------



Nordstammtisch in Hamburg (Perdita, 23. Feb 2016, 17:40:23):
Hallo allerseits,
der Termin fuer unseren Nordstammtisch in Hamburg steht jetzt fest!
Wir treffen uns am Freitag den 1. April (kein Aprilscherz!) um 19.00 Uhr im
Schachcafe am Ruebenkamp in Hamburg.
Ich werde einen Tisch auf den Namen Morgengrauen reservieren.
Weitere Interessierte moegen sich bitte bis etwa eine Woche vorher noch in die
doodle-Liste eintragen, damit ich eine etwaige Teilnehmerzahl fuer die
Tischbestellung habe.
http://doodle.com/poll/kfhpr7f8cwy7d4mf
Kommet zuhauf!
Ick freu mir!
Perdita

-----------------------------------------------------------------------------



Stammtisch in Bochum: 28.02.2016 (Arathorn, 25. Feb 2016, 21:24:25):
Hallo zusammen,

wir treffen uns am 28.2. im Mandragora, Konrad-Adenauer-Platz, zum
Fruehstuecks-Brunch-Was-auch-immer-Stammtisch. Wie immer geht's um 11:00 Uhr
los, aber dann ist wie immer noch keiner da, sondern erst ab 12:00 Uhr 
oder so in dem Dreh. :-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Stammtisch in Bochum: 28.02.2016 (Zesstra, 25. Feb 2016, 22:12:04):
~#! rn=Arathorn rt=1456431865 rg=treffen.bekanntmachungen
~#! tid=1456431865
Wenn der Zug puenktlich ist, bin ich um 11:30 da. ;-)

Zesstra

-----------------------------------------------------------------------------



Ka StaTi 10.3. (Gingko,  4. Mar 2016, 14:12:54):
naechster StaTi in Karlsruhe:
10.03.16 San Marco - www.sanmarco-ka.de

Gruesze Gingko.


-----------------------------------------------------------------------------



KA StaTis 17.3.-28,4. (Croft, 10. Mar 2016, 23:14:08):
Die naechsten Lokale:
17.03.16 Im Schlachthof - imschlachthof.de
24.03.16 Marktluecke - www.karlsruhermarktluecke.de
31.03.16 FG1 - www.fg-eins.de
07.04.16 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
14.04.16 Beim Griechen - Steinmannstr. 1, Rppurr
21.04.16 Shalimar - Leopoldstrae 28, Ettlingen
28.04.16 La Terrazza - Wachhausstr. 15


Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum: 13.03.2016 (Arathorn, 12. Mar 2016, 01:22:04):
Hallo zusammen,

wir treffen uns am 13.3. im Mandragora, Konrad-Adenauer-Platz, zum
Fruehstuecks-Brunch-Was-auch-immer-Stammtisch. Wie immer geht's um 11:00 Uhr
los, aber dann ist wie immer noch keiner da, sondern erst ab 12:00 Uhr 
oder so in dem Dreh. :-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Nordstammtisch in Hamburg (Perdita, 29. Mar 2016, 19:26:21):
~#! rn=Perdita rt=1456245623 rg=treffen.bekanntmachungen
~#! tid=1456245623
kleine Erinnerung an unseren Nordstammtisch im Schachcafe Ruebenkamp in
Hamburg am kommenden Freitag, den 1. April um 19 Uhr. Tisch reserviert auf
Morgengrauen. Kommet zuhauf! Wer sich noch nicht eingetragen hat, moege dies
bitte noch tun
http://doodle.com/poll/kfhpr7f8cwy7d4mf
Bis Freitag
Perdita

-----------------------------------------------------------------------------



Reboot tut gut... (Zzestra,  1. Apr 2016, 18:37:37):
Notstrom hat eine Sicherheitsluecke des Gamedrivers genutzt, um unter
falschem Namen mehrere Beitraege in der MPA zu verfassen. 

Ich habe den Fehler im Quelltext bereits korrigiert, um einen Reboot 
komme ich aber nicht herum. Dies wird im Laufe des Abends geschehen.

Bedankt euch bei o.g. Magier. Ueber Konsequenzen werden wir Erzmagier 
noch beraten.

Zz*

-----------------------------------------------------------------------------



Stati in Bochum (Humni,  1. Apr 2016, 20:33:49):
Hallo ihr,

wie immer ist es viel zu spaet, um sinnvoll ankuendigen zu koennen, aber wir
kuendigen trotzdem: Zum Brunchen wird ein Stammtisch in Bochum stattfinden. Am
3.4.2016. Wie immer im Mandragora, wie immer ab 11 Uhr, und wie immer werden
ab 12 Uhr Leute kommen, oder so.

Kommet zu Hauf!

Humni

-----------------------------------------------------------------------------



Stati in Bochum, 24.04.2016 (Arathorn, 22. Apr 2016, 17:43:51):
Hallo zusammen,

diesmal verhaeltnismaessig frueh: naechsten Sonntag ist wieder mal ein
Stammtisch in Bochum, und zwar wie immer im Mandragora, Konrad-Adenauer-
Platz 1. Wie immer ab 11 uhr, und wie immer werden ab 12 Uhr die ersten
dort auftauchen.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA StaTis 5.5.-9.6. (Croft, 30. Apr 2016, 15:06:10):
Hier die naechsten Lokale:
05.05.16 FG1 - www.fg-eins.de
12.05.16 El Taquito - www.el-taquito.de
19.05.16 San Marco - www.sanmarco-ka.de
26.05.16 American Diner Durlach - www.diner-durlach.de
02.06.16 Beim Griechen - Steinmannstr. 1, Rueppurr
09.06.16 Marktluecke - www.karlsruhermarktluecke.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch-Erinnerung Pfingstmontag 16.5 Berlin (Gloinson, 11. Mai 2016, 19:47:16):
Moinsen,

das vorhergesagte Wetter scheint zwar nicht fuer den Aussenbereich geeignet,
wir beissen uns dennoch durch!

Koemmet zu Hauf!

Ort:
Die Turnhalle
Holteistr. 6-9
10245 Berlin

Zeit:
* ab 10 Uhr auf Becker reserviert, bis 15 Uhr Essen

Gloin(son)

-----------------------------------------------------------------------------



Stati in Bochum am 22.05.2016 (Arathorn, 21. Mai 2016, 13:44:19):
Hallo zusammen,

diesmal wieder so spaet wie ueblich angekuendigt, dennoch: morgen findet
wieder mal ein Stammtisch im Mandragora in Bochum statt, Konrad-Adenauer-
Platz 1. Wie ueblich ab 11 Uhr, und wie ueblich werden ab 12 Uhr die 
ersten Teilnehmer dort auftauchen.

Komment zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA StaTis 23.-30.6.2016 (Croft, 13. Jun 2016, 17:12:22):
Anlaesslich des Fussballspiels rufen wir fuer den 16.6. einen verteilten
Stammtisch aus.  D.h. wir lassen ihn nicht ausfallen, aber trinken an
verschiedenen Orten ein Getraenk unserer Wahl auf die deutsche Auswahl.
Externe sind herzlich eingeladen hier teilzunehmen, da sich das mit der
Anfahrt gut vereinfacht.

23.6. Il Caminetto (Kronenstrasse 5)
30.6. Zum Elsternest (www.zum-elsternest.de)
Das Elsternest ist erstmal unter Vorbehalt (siehe oben).

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Mandragora am 19.6.2016 (Humni, 17. Jun 2016, 21:03:10):
Hallo ihr,

am 19.6. (das ist ein Sonntag, wie immer) werden wir im Mandragora
fruehstuecken, brunchen und andere Dinge essen und trinken. Das geht wie immer
um 11 Uhr los. Vor 12 wird aber keiner erscheinen. Wie immer.

Humni

-----------------------------------------------------------------------------



Re: Mandragora am 19.6.2016 (Zesstra, 18. Jun 2016, 08:26:51):
~#! rn=Humni rt=1466190190 rg=treffen.bekanntmachungen
~#! tid=1466190190
leichte Korrektur: ich glaube, ich werde vor 12:00 erscheinen. Sofern die Bahn
will, vermutlich gegen 11:30. ;-)

Zesstra

-----------------------------------------------------------------------------



Stammtisch in Bochum am 3.7.2016 (Humni, 30. Jun 2016, 22:46:03):
Hallo alle,

wir machen wieder einmal einen Stammtisch in Bochum.

Am 3.7.2016 treffen wir uns im Mandragora, Konrad-Adeneuer-Platz.

Der Stammtisch beginnt puenktlich um 11 Uhr.
Allerdings ist dann vermutlich noch niemand da.
Die meisten kommen wohl erst ab 12.
Oder noch spaeter.

Humni

-----------------------------------------------------------------------------



KA StaTis 7.7.-18.8.2016 (Croft,  3. Jul 2016, 11:41:20):
Die naechsten Lokale:
07.07.16 Jasmin - Marktstr. 16, Ettlingen
14.07.16 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
21.07.16 Beim Griechen - Steinmannstr. 1, Rppurr
28.07.16 Braustbl Hatz-Moninger - www.braustuebl-ka.de
04.08.16 Marktluecke - www.karlsruhermarktluecke.de
11.08.16 FG1 - www.fg-eins.de
18.08.16 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.  Der naechste Termin im Jasmin wird aufgrund
des Halbfinales eher duenn besucht sein. Und am 28.7. wird es noch einen
zweiten Karlsruher Stammtisch im Raum Hattingen geben.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 7.7.-18.8.2016 (Gingko,  7. Jul 2016, 12:04:53):
~#! rn=Croft rt=1467538880 rg=treffen.bekanntmachungen
~#! tid=1467538880
Der StaTi in Karlsruhe heute abend wird aufgrund des Halbfinalspiels an
verteilten Lokalitaeten stattfinden. D.h. im Jasmin faellt er aus. Naechster
Termin ist dann 14.7. in Mariannes Flammkuchen.
Gruesze, gingko.

-----------------------------------------------------------------------------



Re: KA StaTis 7.7.-18.8.2016 (Croft, 12. Aug 2016, 10:30:24):
~#! rn=Croft rt=1467538880 rg=treffen.bekanntmachungen
~#! tid=1467538880
Da das San Marco naechste Woche Urlaub hat, wird das verschoben und
das Il Caminetto eingefuegt:
18.08.16 Il Caminetto (Kronenstrasse 5)
25.08.16 San Marco - www.sanmarco-ka.de

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 21.08.2016 (Arathorn, 19. Aug 2016, 18:37:06):
Hallo zusammen,

es findet nach laengerer Abstinenz wieder ein Stammtisch in Bochum statt.

Wie ueblich treffen wir uns im Mandragora, Konrad-Adenauer-Platz 1. Und wie
ueblich beginnt der Stati um 11 Uhr, allerdings ist dann wie ebenfalls
ueblich noch niemand da. Mit Anwesenheit der ersten Mudder ist gegen 12 Uhr
zu rechnen. 

Kommet zuhauf!

Arathorn.

-----------------------------------------------------------------------------



KA StaTis 1.-8.9.2016 (Croft, 26. Aug 2016, 09:11:17):
Erstmal nur zwei neue Termine, beide in Schlossnaehe um die Schlosslichtspiele
noch bewundern zu koennen:
01.09.16 El Taquito - www.el-taquito.de
08.09.16 Il Caminetto -Kronenstrasse 5

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 11.09.2016 (Arathorn,  9. Sep 2016, 00:21:39):
Hallo zusammen,

es findet mal wieder ein Stammtisch in Bochum statt.

Wie ueblich treffen wir uns im Mandragora, Konrad-Adenauer-Platz 1. Und wie
ueblich beginnt der Stati um 11 Uhr, allerdings ist dann wie ebenfalls
ueblich noch niemand da. Mit Anwesenheit der ersten Mudder ist gegen 12 Uhr
zu rechnen. 

Kommet zuhauf!

Arathorn.

-----------------------------------------------------------------------------



KA StaTis 15.9.-10.11. (Croft,  9. Sep 2016, 08:30:14):
Wir waren bis auf einen Termin recht fleissig:

15.09.16 Marktluecke - www.karlsruhermarktluecke.de
22.09.16 La Terrazza - Wachhausstr. 15
29.09.16
06.10.16 Chiang Mai - Durlacher Allee 11
13.10.16 Shalimar - Leopoldstrae 28, Ettlingen
20.10.16 Beim Griechen - Steinmannstr. 1, Rppurr
27.10.16 FG1 - www.fg-eins.de
03.11.16 Lago Bowling-Center - www.lago-bowling.de
10.11.16 San Marco - www.sanmarco-ka.de

Der fehlende Termin wurde Gingko schon vor einer Woche als Hausaufgabe
gegeben, die noch nicht erledigt ist.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 15.9.-10.11. (Croft,  9. Sep 2016, 10:20:54):
~#! rn=Croft rt=1473402614 rg=treffen.bekanntmachungen
~#! tid=1473402614
Und nu sind die Termine vollzaehlig:
15.09.16 Marktluecke - www.karlsruhermarktluecke.de
22.09.16 La Terrazza - Wachhausstr. 15
29.09.16 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
06.10.16 Chiang Mai - Durlacher Allee 11
13.10.16 Shalimar - Leopoldstrae 28, Ettlingen
20.10.16 Beim Griechen - Steinmannstr. 1, Rppurr
27.10.16 FG1 - www.fg-eins.de
03.11.16 Lago Bowling-Center - www.lago-bowling.de
10.11.16 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Stati Bochum 25.9.2016 (Humni, 24. Sep 2016, 13:06:45):
Hallo ihr,

das letzte Mal ist ja schon wieder 14 Tage her! Also muessen wir dringend
morgen, am 25.9., im Mandragora brunchen.

Wie immer um 11 Uhr, und vor 12 kommt keiner. Also kommet zuhauf!

Humni

-----------------------------------------------------------------------------



Re: Stati Bochum 25.9.2016 (Zesstra, 24. Sep 2016, 17:37:13):
~#! rn=Humni rt=1474715205 rg=treffen.bekanntmachungen
~#! tid=1474715205
Na, sowas, ich bin zwar in Bochum, aber schon verabredet.
Aber falls jemand Lust hat, sich spontan heute abend im Bereich Bochum zu
treffen, sagt Bescheid. ;-)

Zesstra

-----------------------------------------------------------------------------



Stammtisch in Bochum am 23.10. (Bugfix, 14. Okt 2016, 22:57:45):
Moin,

Mal richtig frueh angekuendigt, am 23.10. findet mal wieder ein Stammtisch in
Bochum statt.

Wie ueblich im Mandragora, Konrad-Adenauer-Platz 1, wie ueblich ab 11:00 Uhr,
wobei mit Anwesenden erst ab so gegen 12:00 Uhr zu rechnen ist.

Nicht wie ueblich: Es gibt dieses mal gleich drei Special Guests!

Kommet zuhauf!

Bugfix

-----------------------------------------------------------------------------



Stammtisch in Bochum auch am 16.10. :-) (Arathorn, 15. Okt 2016, 10:18:58):
Hallo zusammen,

und nochmal in alter Tradition gerade-so-ausreichend knapp angekuendigt:
auch morgen (16.10.2016) gibt's einen Stammtisch in Bochum.

Wie ueblich im Mandragora, Konrad-Adenauer-Platz 1, wie ueblich ab 11:00 Uhr,
wobei mit Anwesenden erst ab so gegen 12:00 Uhr zu rechnen ist.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Stammtisch in Bochum nochmal am 30.10. (Arathorn, 29. Okt 2016, 15:15:05):
Jaja, wir reduzieren die Haeufigkeit demnaechst auch wieder. ;-) Es kamen
halt in der letzten Zeit verschiedene Special Guests zu Besuch, was ja 
immer ein willkommener Anlass fuer einen Stammtisch ist. :-)

So auch diesmal, denn der Olli ist in der Gegend, und daher gibt's einen
Stammtisch im Mandragora, Konrad-Adenauer-Platz 1, wie ueblich ab 11:00 Uhr,
wobei es diesmal sogar sein koennte, dass schon vor 12:00 Uhr jemand da
ist. ;-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Re: KA StaTis 15.9.-10.11. (Croft,  1. Nov 2016, 09:19:10):
~#! rn=Croft rt=1473409254 rg=treffen.bekanntmachungen
~#! tid=1473402614
Wir haben beschlossen das San Marco eine Woche nach hinten zu schieben
und nochmal das Chiang Mai einzufuegen:
03.11.16 Lago Bowling-Center - www.lago-bowling.de
10.11.16 Chiang Mai - Durlacher Allee 11
17.11.16 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA StaTis 24.11.-29.12. (Croft, 24. Nov 2016, 17:33:14):
24.11.16 FG1 - fg-eins.de
01.12.16 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
08.12.16 El Taquito - www.el-taquito.de
15.12.16 Werkbank - werkbank-karlsruhe.de
22.12.16 San Marco - www.sanmarco-ka.de
29.12.16 Kouros - www.restaurant-kouros.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 24.11.-29.12. (Croft, 25. Nov 2016, 10:34:29):
~#! rn=Croft rt=1480005194 rg=treffen.bekanntmachungen
~#! tid=1480005194
El Taquito und die Werkbank werden die Reihenfolge tauschen:
01.12.16 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
08.12.16 Werkbank - werkbank-karlsruhe.de
15.12.16 El Taquito - www.el-taquito.de
22.12.16 San Marco - www.sanmarco-ka.de
29.12.16 Kouros - www.restaurant-kouros.de

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 27.11. (Humni, 26. Nov 2016, 20:47:33):
Hallo ihr,

die Bochum-und-Umgebung-Fraktion trifft sich morgen im Mandragora in Bochum.
Der Stammtisch beginnt um 11, so ab 12 Uhr kommt vielleicht auch jemand.

Humni

-----------------------------------------------------------------------------



KA StaTis 30.3.-4.5. (Croft, 26. Mar 2017, 22:42:32):
Ein paar neue Termine:
30.03.17 Chiang Mai - Durlacher Allee 11
06.04.17 San Marco - www.sanmarco-ka.de
13.04.17 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
20.04.17 FG1 - www.fg-eins.de
27.04.17 Beim Griechen - Steinmannstr. 1, Rueppurr
04.05.17 Marktluecke - www.karlsruhermarktluecke.de

Beginn wie immer um 20:00.  Um Voranmeldung zwecks Reservierung wird gebeten.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 30.3.-4.5. (Mundron, 13. Apr 2017, 08:32:45):
~#! rn=Croft rt=1490560952 rg=treffen.bekanntmachungen
~#! tid=1490560952
Liebe Interessenten an einem Stammtisch in Mittelhessen,

nun wage ich es doch mal einen Vorschlag zu unterbreiten, da doch der eine
oder andere aus der Umgebung kommt und es prinzipiell Interesse an einem
Stammtisch angedeutet wurde.

28.4.17 Ihrings - Ludwigstrasse 10, 35390 Giessen

Beginn 19:30 Uhr. Um Voranmeldung zwecks Reservierung wird gebeten.

Zur Webseite der Wirtsstube: http://www.ihrings.de/

-----------------------------------------------------------------------------



KA StaTis 11.5.-1.6. (Croft,  5. Mai 2017, 07:01:42):
Und die naechsten vier Orte:
11.05.17 L'Incontro - www.lincontro.de
18.05.17 Shalimar - Leopoldstr. 28, Ettlingen
25.05.17 San Marco - www.sanmarco-ka.de
01.06.17 FG1 - www.fg-eins.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



N/FUE/ER: Ausserordentlicher Mud-Stammtisch (Gwen,  7. Jun 2017, 16:36:59):
In der ersten Juli-Woche gibt es einen Mud-StaTi im Raum N/FUE/ER.

Datum: Do 06.07.2017
Beginn: 18:42 Uhr
Ort: Biergarten der Restauration Kopernikus, 
Adresse: Hintere Insel Schuett 34 90403 Nrnberg
WWW: https://www.restauration-kopernikus.de/de/biergarten-nuernberg

Mit der Bitte um baldige Rueckmeldung zwecks Reservierung.
Viele Gruesse, 

Gwen + Vanir.

-----------------------------------------------------------------------------



KA Stati 8.6.17 (Croft,  7. Jun 2017, 23:09:33):
Und die Karlsruher machen ebenso kurzfristig eine Konkurrenz-Stati zu den
N/FUE/ERlern:
8.6.17. Zum Elsternest - www.zum-elsternest.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 15.6.-20.7. (Croft,  8. Jun 2017, 22:56:50):
Und die weiteren Termine:
15.06.17 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
22.06.17 Beim Griechen - Steinmannstr. 1, Rueppurr
29.06.17 La Terrazza - Wachhausstr. 15
06.07.17 Marktluecke - www.karlsruhermarktluecke.de
13.07.17 Bratar - Erbprinzenstr. 27 - www.bratar.de
20.07.17 FG1 - www.fg-eins.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA Stati 8.6.17 (Gwen,  9. Jun 2017, 08:17:26):
~#! rn=Croft rt=1496869773 rg=treffen.bekanntmachungen
~#! tid=1496869773
Da wart Ihr der Zeit wohl voraus :)
Herzliche Einladung nach N naechsten Monat!!!
LG, Gwen.

-----------------------------------------------------------------------------



Re: Re: Sommertreffen in Hattingen (Humni, 27. Jun 2017, 21:13:26):
~#! rn=Humni rt=1498590440 rg=party.bekanntmachungen
~#! tid=1492799232
Und dann schreib ich das auch noch mal zum Party-Artikel, aber in der
Treffen-Rubrik, da das eigentlich nicht direkt zur Party gehoert: Einer der
Gruende, dass wir in den letzten Jahren immer nach Hattingen fahren, ist der,
dass viele danach von da aus mehr oder minder direkt nach Wacken aufbrechen.

Sollten von denen, die das bisher nicht mit uns gemeinsam getan haben, noch
weitere MG-ler Lust haben, uns auch da zu begleiten, sprecht einfach einen von
uns an. Ich fand es die letzten Jahre in Wacken vor allem auch immer wegen
"MG+Friends" (wobei Friends recht weit geht, sind einige bei, die nie im MG
waren) immer ganz nett. Wir fahren Dienstags dahin, mehr erzaehle ich gerne
bei Bedarf.

Humni

-----------------------------------------------------------------------------



Re: N/FUE/ER: Ausserordentlicher Mud-Stammtisch (Gwen,  6. Jul 2017, 09:17:59):
~#! rn=Gwen rt=1496846219 rg=treffen.bekanntmachungen
~#! tid=1496846219
Tisch ist ab halb reserviert.
Wer spaeter kommt: Wir werden bestimmt eine Weile da sitzen.
Viele Gruesse, Gwen.

-----------------------------------------------------------------------------



Mandragora/Bochum, 9.7.2017 (Humni,  8. Jul 2017, 20:38:49):
Hallo ihr,

recht spontan (oehem) treffen wir uns morgen zum Brunchen im Mandragora in
Bochum.

Beginn ist wie immer so gegen 11 Uhr, und ab ca. 12 Uhr oder so kommen dann
auch Leute.

Kommet zuhauf!

Humni

-----------------------------------------------------------------------------



Re: Mandragora/Bochum, 9.7.2017 (Arathorn,  8. Jul 2017, 20:53:26):
~#! rn=Humni rt=1499539129 rg=treffen.bekanntmachungen
~#! tid=1499539129
Hinweis: aktuell findet Bochum Total statt, d.h. es gibt im Innenstadt-
bereich Strasssensperrungen, so dass man ggf. Umwege fahren muss, um
die Kneipe zu erreichen. Die Zufahrt zum Parkhaus um die Ecke sollte aber
frei sein.

Arathorn.

-----------------------------------------------------------------------------



Re: Re: Mandragora/Bochum, 9.7.2017 (Humni,  9. Jul 2017, 11:43:11):
~#! rn=Arathorn rt=1499540006 rg=treffen.bekanntmachungen
~#! tid=1499539129
Und noch eine Mitteilung: Mangels Interesse (es waeren ohnehin nur drei Leute
gekommen, davon ist einer nun auch noch angeschlagen) faellt der Stati aus.

Aber aufgeschoben ist nicht aufgehoben. Wir werden demnaechst wieder dort
tafeln.

Humni

-----------------------------------------------------------------------------



KA StaTis 27.7.-14.9. (Croft, 21. Jul 2017, 07:52:31):
Und wieder ein paar Termine:
27.07.17 San Marco - www.sanmarco-ka.de
03.08.17 Beim Griechen - Steinmannstr. 1, Rueppurr
10.08.17 Marktluecke - www.karlsruhermarktluecke.de
17.08.17 El Taquito - www.el-taquito.de
24.08.17 Chiang Mai - Durlacher Allee 11
31.08.17 Il Caminetto - Kronenstr. 5
07.09.17 Marktluecke - www.karlsruhermarktluecke.de
14.09.17 FG1 - www.fg-eins.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch Giessen, die Zweite (Mundron,  9. Aug 2017, 13:21:55):
Ich habe der Party in Hattingen entnommen, dass ein neuer Versuch eines
Stammtischs Giessen erstrebenswert sei.
Auf Grund eines Wunsches schlage ich vor:
Mama of Africa in Giessen, Bahnhofsstrasse 7
Homepage: http://www.mamaofafrica.de/1.html
Was die Zeit angeht, so moechte ich diesmal versuchen drei Vorschlaege zu
unterbreiten:
Samstag, den 2.9.
Samstag, den 16.9.
Samstag, den 23.9.

Die Uhrzeit waere gegen 19 Uhr. Ich werde puenktlich sein.
Nun ist die Frage welches der drei Vorschlaege den meisten Zulauf haette. Ich
koennte eine Doodle-Umfrage machen, aber ich denke es ist ausreichend, wenn
ihr mir eine kurze Nachricht hier im MG schickt an welchen Tagen ihr kommen
koenntet und mit wie vielen Personen ihr kommen wuerdet.
In einer Woche wuerde ich den Termin mit den meisten Zusagen auswaehlen und
bekannt geben.

In der Hoffnung auf mehr Zusagen wie beim letzten Stammtisch freue ich mich
von euch zu hoeren.

Viele Gruesse
Mundron

-----------------------------------------------------------------------------



Re: Stammtisch Giessen, die Zweite (Mundron, 16. Aug 2017, 17:52:03):
~#! rn=Mundron rt=1502277715 rg=treffen.bekanntmachungen
~#! tid=1502277715
Immerhin 4 Rueckmeldungen habe ich nun bekommen und die Tendenz ist eindeutig.

Ich lege den Tag des Stammtisches Giessen auf den Samstag, den 23.9.2017 fest.
Uhrzeit 19 Uhr.
Ort: Mama of Africa in Giessen, Bahnhofsstrasse 7

Ich freue mich schon drauf. Zwecks Tischreservierung wuerde ich vielleicht
eine Woche vorher nochmal nach festen/hoechst wahrscheinlichen Zusagen
anfragen.

-----------------------------------------------------------------------------



Re: KA StaTis 27.7.-14.9. (Croft, 24. Aug 2017, 08:27:48):
~#! rn=Croft rt=1500616351 rg=treffen.bekanntmachungen
~#! tid=1500616351
Da das Chiang Mai Sommerpause macht, wird heute La Terrazza besucht.
Desweiteren tauschen die Marktlcke und das Il Caminetto den Zeitpunkt,
da Letztere ebenso im Urlaub sind.

24.08.17 La Terrazza - Wachhausstr. 15
31.08.17 Marktluecke - www.karlsruhermarktluecke.de
07.09.17 Il Caminetto - Kronenstr. 5
14.09.17 FG1 - www.fg-eins.de

Croft

-----------------------------------------------------------------------------



KA StaTis 21.9.-9.11. (Croft, 14. Sep 2017, 23:49:19):
21.09.17 San Marco - www.sanmarco-ka.de
28.09.17 Chiang Mai - Durlacher Allee 11
05.10.17 Beim Griechen - Steinmannstr. 1, Rppurr
12.10.17 Marktlcke - www.karlsruhermarktluecke.de
19.10.17 Italy, Italy - www.italyitaly.de
26.10.17 Shalimar - Leopoldstr. 28, Ettlingen2
02.11.17 San Marco - www.sanmarco-ka.de 
09.11.17 FG1 - www.fg-eins.de 

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: Re: Stammtisch Giessen, die Zweite (Mundron, 15. Sep 2017, 23:12:02):
~#! rn=Mundron rt=1502898723 rg=treffen.bekanntmachungen
~#! tid=1502277715
Hi,

nochmal zur Erinnerung, da die Planung etwas langfristiger war:

Stammtisch Giessen
Samstag, den 23.07.2017
MamaOfAfrica in Giessen, Bahnhofsstrasse 7

Ich freue mich schon drauf!

-----------------------------------------------------------------------------



Re^3: Stammtisch Giessen, die Zweite (Croft, 16. Sep 2017, 00:40:55):
~#! rn=Mundron rt=1505509922 rg=treffen.bekanntmachungen
~#! tid=1502277715
>Samstag, den 23.07.2017
ist verkehrt. Gemeint ist:
>Samstag, den 23.9.2017

Croft

-----------------------------------------------------------------------------



Re^4: Stammtisch Giessen, die Zweite (Mundron, 21. Sep 2017, 20:37:01):
~#! rn=Croft rt=1505515255 rg=treffen.bekanntmachungen
~#! tid=1502277715
Vielen Dank Croft :)

Ich habe gerade fuer das Treffen ein Tisch ab 19 Uhr reseriert. Also es steht.
Ich bin ab 19 Uhr mit meiner Freundin schon vor Ort.

-----------------------------------------------------------------------------



Stammtisch Bochum (Miril,  8. Okt 2017, 17:32:04):
Huhu,
am naechsten Sonntag, dem 15.10. treffen wir uns mal wieder im Mandragora in
Bochum. Uhrzeit wie immer 11 Uhr, d.h. ab 12 Uhr ist mit Anwesenden zu
rechnen.

Kommet zuhauf.

Miril

-----------------------------------------------------------------------------



Re: KA StaTis 21.9.-9.11. (Croft, 15. Okt 2017, 09:26:14):
~#! rn=Croft rt=1505425759 rg=treffen.bekanntmachungen
~#! tid=1505425759
Auf Grund von O-Phasen Aktivitaeten musste die Marktluecke spontan mit
Italy, Italy getauscht werden.

Croft

-----------------------------------------------------------------------------



KA StaTis 16.11.17-11.01.18 (Croft,  9. Nov 2017, 21:44:51):
Heya,

die frisch ausgemurmelten Termine:
16.11.17 Marktluecke - www.karlsruhermarktluecke.de
23.11.17 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
30.11.17 Lwenbrukeller - www.loewenbraeukeller.de
07.12.17 La Terrazza - Wachhausstr. 15
14.12.17 Il Caminetto - Kronenstr. 5
21.12.17 Kouros - www.restaurant-kouros.de
28.12.17 ---
04.01.18 ??? - ???
11.01.18 FG1 - www.fg-eins.de   

28.12. wird kein StaTi stattfinden und ueber den 4.1. wird noch
kurzfristig vor Weihnachten beraten werden.  Ggf gibt es an diesem
Termin noch einen noerdlicher gelegenen alternativ KA-StaTi hierfuer.

Beginn wie immer um 20:00.

Gruss Croft

-----------------------------------------------------------------------------



Re: KA StaTis 16.11.17-11.01.18 (Croft,  3. Jan 2018, 16:44:31):
~#! rn=Croft rt=1510260291 rg=treffen.bekanntmachungen
~#! tid=1510260291
Der Alternativ-StaTi findet am 4.1. in Lemfoerde im Nam Kinh Garten statt.
www.namkinhgarten.de
Beginn wohl grob ab 20:00, je nachdem wann die Meute hier in Bewegung kommt.

Croft

-----------------------------------------------------------------------------



Re: Re: KA StaTis 16.11.17-11.01.18 (Croft,  3. Jan 2018, 23:18:42):
~#! rn=Croft rt=1514994271 rg=treffen.bekanntmachungen
~#! tid=1510260291
Der StaTi in KA am 4.1. wird wohl in der Marktluecke zu finden sein.
http://karlsruhermarktluecke.de/

Croft

-----------------------------------------------------------------------------



KA StaTis 18.1.-15.3. (Croft, 16. Jan 2018, 09:48:26):
Die neuen Orte:
18.01.18 Pomodoro - Waldstrasse 87
25.01.18 Chiang Mai - Durlacher Allee 11
01.02.18 Loewenbraeukeller - www.loewenbraeukeller.de
08.02.18 Beim Griechen - Steinmannstr. 1, Rueppurr
15.02.18 Bratar - Erbprinzenstr. 27 www.bratar.de
22.02.18 Marktluecke - www.karlsruhermarktluecke.de
01.03.18 El Taquito - www.el-taquito.de
08.03.18 San Marco - www.sanmarco-ka.de
15.03.18 FG1 - www.fg-eins.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch Frankfurt (Mundron, 10. Feb 2018, 18:28:34):
Auf Grund von Nachfrage schlage ich mal einen naechsten Stammtisch vor,
diesmal in Frankfurt.

Lokation: Restaurant Archenova, Kassler Strasse 1a, 60486 Frankfurt-Bockenheim
(nahe Frankfurt Westbahnhof)
Uhrzeit: ab 19 Uhr
Datum: 17.03.2018
gewuenschte Teilnehmeranzahl: so viele wie moeglich.

Es wird um Anmeldung gebeten bei mir gebeten, damit ich entsprechend Plaetze
reservieren kann.

-----------------------------------------------------------------------------



KA goes Flammkuchen 17.3. (Croft, 11. Feb 2018, 09:00:51):
Schon laenger in Planung aber noch ohne Posting hier:
Da der letzte Ausflug ins Elsass schon wieder ueber 2 Jahre her ist, wurde
beschlossen mal wieder zur rituellen Flammkuchenvertilgung ins Elsass zu
fahren.  Als Termin ist hier der 17. Maerz vorgesehen, der leider mit
dem ein oder anderen Event wie St. Patricks Day kollidiert.
Ort ist noch in Diskussion.  Moeglicherweise Auberge de la Foret in Seltz.

Croft

-----------------------------------------------------------------------------



Re: Stammtisch Frankfurt (Mundron, 11. Feb 2018, 10:16:51):
~#! rn=Mundron rt=1518283714 rg=treffen.bekanntmachungen
~#! tid=1518283714
Um niemanden einen Entscheidungszwang zuzumuten verschiebe ich mal den
Stammtisch in Frankfurt zwecks der wohl laenger geplanten "KA goes
Flammkuchen".

Daher schlage ich als neuen Termin eine Woche spaeter vor, naemlich den
24.03.2018. Ort und Uhrzeit bleibt gleich.

-----------------------------------------------------------------------------



Bochum Stammtisch (Miril,  4. Mar 2018, 13:17:38):
Huhu,

ich finde, es wird mal wieder Zeit fuer einen Stammtisch in Bochum. Daher
kuendige ich jetzt einfach mal einen an und zwar am

11.3.2018
im Mandragora
ab 11 Uhr.

Wie immer ist vor 12 aber vermutlich niemand da.

Kommet zuhauf,
Miril

-----------------------------------------------------------------------------



Re: Re: Stammtisch Frankfurt (Mundron, 18. Mar 2018, 01:08:34):
~#! rn=Mundron rt=1518340611 rg=treffen.bekanntmachungen
~#! tid=1518283714
Hier nochmal eine Erinnerung an den Stammtisch in Frankfurt in einer Woche.

Ort: Restaurant Archenova
Zeit: Ab 19 Uhr

Ich habe jetzt entsprechend der bisherigen Rueckmeldungen reserviert. Aber
wenn noch mehr kommen moechten, so freuen wir uns natuerlich. :)

-----------------------------------------------------------------------------



KA StaTis 22.3.-26.4. (Croft, 18. Mar 2018, 11:46:35):
22.03.18 Italy, Italy - www.italyitaly.de
29.03.18 Lago Bowling-Center - www.lago-bowling.de
05.04.18 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
12.04.18 Shalimar - Leopoldstr. 28, Ettlingen
19.04.18 El Taquito - www.el-taquito.de
26.04.18 Soki Garden - Waldstrasse 24-28

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 22.3.-26.4. (Croft, 24. Mar 2018, 12:09:37):
~#! rn=Croft rt=1521369995 rg=treffen.bekanntmachungen
~#! tid=1521369995
Urlaubsbedingt muss das Shalimar durch das Chiang Mai ersetzt werden:

29.03.18 Lago Bowling-Center - www.lago-bowling.de
05.04.18 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
12.04.18 Chiang Mai - Durlacher Allee 11
19.04.18 El Taquito - www.el-taquito.de
26.04.18 Soki Garden - Waldstrasse 24-28

Croft

-----------------------------------------------------------------------------



Stammtisch im Mandra (Miril, 13. Apr 2018, 20:21:22):
Huhu,

am Sonntag, den 15.4. wollen wir uns mal wieder im Mandragora versammeln.
Offizieller Beginn ist wie immer um 11 Uhr, aber erwartet nicht, dass dann
schon jemand erscheint. Fruehstens ist ab 12 Uhr mit Anwesenden zu rechnen
(Drachen und Uromas ausgenommen, die erscheinen meist spaeter, damit ihr euer
Fruehstueck in Ruhe geniessen koennt, bevor ihr gefressen werdet).

Kommet zuhauf,
Miril

-----------------------------------------------------------------------------



Re: Re: KA StaTis 22.3.-26.4. (Croft,  3. Mai 2018, 22:35:22):
~#! rn=Croft rt=1521889777 rg=treffen.bekanntmachungen
~#! tid=1521369995
Oh, hatte ich doch glatt vergessen das La Terrazza fuer heute zu posten.

Croft

-----------------------------------------------------------------------------



KA StaTis 10.5.-5.7. (Croft,  3. Mai 2018, 22:36:37):
10.05.18 Dezentral
17.05.18 Marktlcke - www.karlsruhermarktluecke.de
24.05.18 Shalimar - Leopoldstr. 28, Ettlingen
31.05.18 San Marco - www.sanmarco-ka.de
07.06.18 FG1 - www.fg-eins.de
14.06.18 Beim Griechen - Steinmannstr. 1, Rppurr
21.06.18 El Taquito - www.el-taquito.de
28.06.18 Alibaba - www.alibaba-ka.de
05.07.18 Jasmin - Marktstr. 16, Ettlingen

An Christi Himmelfahrt ist der StaTi dezentral.  D.h. jeder darf dort wo
er grad ist einen Karlsruher Stammtisch ausrichten.  Wir freuen uns
auf rege Beteiligung.  Beginn ansonsten wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 24.5.-5.7. (Croft, 19. Mai 2018, 11:23:30):
Ich vergass zu erwaehnen, dass Marktluecke und San Marco falsch herum
gelistet waren.  Sprich Ersteres kommt noch und Zweiteres war
vorgestern.

Naechste Woche haben wir uebrigens einen Sondergast :-)

24.05.18 Shalimar - Leopoldstr. 28, Ettlingen
31.05.18 Marktluecke - www.karlsruhermarktluecke.de
07.06.18 FG1 - www.fg-eins.de
14.06.18 Beim Griechen - Steinmannstr. 1, Rueppurr
21.06.18 El Taquito - www.el-taquito.de
28.06.18 Alibaba - www.alibaba-ka.de
05.07.18 Jasmin - Marktstr. 16, Ettlingen

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 31.5.-5.7. (Croft, 31. Mai 2018, 11:14:03):
Da die Marktluecke am Feiertag nicht geoeffnet hat, wird sie
kurzerhand mit dem Griechen getauscht.

31.05.18 Beim Griechen - Steinmannstr. 1, Rueppurr
07.06.18 FG1 - www.fg-eins.de
14.06.18 Marktluecke - www.karlsruhermarktluecke.de
21.06.18 El Taquito - www.el-taquito.de
28.06.18 Alibaba - www.alibaba-ka.de
05.07.18 Jasmin - Marktstr. 16, Ettlingen

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



StaTi Frankfurt (Mundron, 10. Jun 2018, 22:47:29):
Lange ist es her und mein schlechtes Gewissen, dass ich noch keinen weiteren
Stammtisch vorgeschlagen hat, laesst mich nun nicht mehr in Ruhe.
Deswegen schlage ich nun mal einen Stammtisch in Frankfurt vor:
Datum: Samstag, den 23.06.2017
Uhrzeit: Ab 19 Uhr
Ort: Zur Kutscherklause, siehe kutscherklause.de
Adresse: Ostendstrasse 47 in 60314 Frankfurt

Zwecks Reservierung wuerde ich mich ueber eine Rueckmeldung freuen, wer alles
anwesend sein moechte.

Vielen Dank!

-----------------------------------------------------------------------------



Re: StaTi Frankfurt (Mundron, 10. Jun 2018, 22:48:57):
~#! rn=Mundron rt=1528663649 rg=treffen.bekanntmachungen
~#! tid=1528663649
P.S.: Peinliche Grammatik- und Zeichensetzungsfehler darf jeder behalten, der
sie findet.

-----------------------------------------------------------------------------



Re: StaTi Frankfurt (Ark, 10. Jun 2018, 23:51:29):
~#! rn=Mundron rt=1528663649 rg=treffen.bekanntmachungen
~#! tid=1528663649
Zwecks Information gebe ich freizuegig die Information preis, dass da
Deutschland gegen Schweden spielt. Dies ziehe ich vor, nicht in einer Kneipe
zu sehen, sondern mit mich anschreienden Verwandten :-D


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: StaTi Frankfurt (Rhovan, 11. Jun 2018, 12:33:15):
~#! rn=Ark rt=1528667489 rg=treffen.bekanntmachungen
~#! tid=1528663649
Huhu,

in der Kutscherklause wird das spiel afaik live uebertragen.
Wir koennen leider nicht, die Grosseltern feiern Geburtstag.

Gruss
Rhovan

-----------------------------------------------------------------------------



Re^3: StaTi Frankfurt (Mundron, 11. Jun 2018, 18:38:24):
~#! rn=Rhovan rt=1528713195 rg=treffen.bekanntmachungen
~#! tid=1528663649
Aus verschiedenen Gruenden war der vorgeschlagene Termin fuer den StaTi
ungluecklich gewaehlt, so dass ich diesen wohl doch absage.

Der naechste moegliche Termin waere dann wohl leider erst im August. Ich werde
diesbezueglich dann einen neuen Artikel eroeffnen.

Ich bitte um Nachsicht.

Mundron

-----------------------------------------------------------------------------



Bochum 24.06.2018 (Arathorn, 24. Jun 2018, 10:05:23):
Hallo zusammen,

nach einer gefuehlt ewigen Pause treffen wir uns heute mal wieder zum
Stammtisch in Bochum. Wie immer im Mandragora, Konrad-Adenauer-Platz 1.
Wie immer ab 11:00 Uhr, und wie immer werden die ersten Teilnehmer ab 
12:00 Uhr vor Ort sein. Und wie immer wird sowas viel zu spaet beschlossen
und angekuendigt. ;-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Mandragora, 1.7. (Miril, 30. Jun 2018, 16:22:09):
Huhu,

nach den langen Pausen machen wir zur Abwechslung mal kuerzere. Daher treffen
wir uns morgen, am 1.7.18 wie gewohnt im Mandragora.
Beginn: ab 12 Uhr ist mit Anwesenden zu rechnen.

Kommet zuhauf,
Miril

-----------------------------------------------------------------------------



Re: KA StaTis 31.5.-5.7. (Croft,  5. Jul 2018, 19:09:48):
~#! rn=Croft rt=1527758043 rg=treffen.bekanntmachungen
~#! tid=1527758043
Auf Grund des Sommerurlaubs des Jasmins wird der Stammtisch kurzerhand
ins Pizzahaus (Rintheimer Strasse 2) verlegt. Beginn in 51min.

Croft

-----------------------------------------------------------------------------



KA StaTis 12.7.-13.9. (Croft,  5. Jul 2018, 22:28:14):
Die naechsten Termine:
12.07.18 Zum Elsternest - www.zum-elsternest.de
19.07.18 Chiang Mai - Durlacher Allee 11
26.07.18 Beim Griechen - Steinmannstr. 1, Rueppurr
02.08.18 Marktluecke - www.karlsruhermarktluecke.de
09.08.18 FG1 - www.fg-eins.de
16.08.18 Italy, Italy - www.italyitaly.de
23.08.18 Alibaba - www.alibaba-ka.de
30.08.18 Soki Garden - www.sokigarden.com
06.09.18 Seng - www.seng-sushi.de
13.09.18 Shalimar - Leopoldstr. 28, Ettlingen

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Treffen im Norden Deutschlands! (Mundron,  1. Aug 2018, 20:13:55):
Da ich ab den 11.8. fuer ein Paar Tage in Luebeck bin, dachte ich, dass wir
dort ein Treffen mit allen Interessenten aus der Umgebung halten koennten.

Ort: Tipasa, Schlumacherstrasse 12 in 23552 Luebeck
Zeit: ab 18 Uhr
Webseite: Leider erst "coming soon". Aber die Wahl dieser Gaststaette stuetzt
auf positive Erfahrungen einer Ortsansaessigen. Soll auch gute vegetarische
Gerichte haben.

Ich bitte um kurze Rueckmeldung zwecks Platzreservierung.

-----------------------------------------------------------------------------



Re: Treffen im Norden Deutschlands! (Mundron,  1. Aug 2018, 20:16:05):
~#! rn=Mundron rt=1533147235 rg=treffen.bekanntmachungen
~#! tid=1533147235
Argh! Ich hab natuerlich das Datum vergessen: Am Samstag, den 11.08.2018

-----------------------------------------------------------------------------



Re: Re: Treffen im Norden Deutschlands! (Perdita,  2. Aug 2018, 19:01:27):
~#! rn=Mundron rt=1533147365 rg=treffen.bekanntmachungen
~#! tid=1533147235
+1

Hach, das gute alte Tipasa... Da waren wir frueher manchmal nach der Schule.
Kann mich aber kaum noch erinnern, wies da aussieht...

Uebrigens, ich hab die Info mal ein bisschen auch unter den nordischen
Ex-Muddern gestreut. Mal gucken, wer noch kommt.
LG Perdita (die sich nach Ewigkeiten mal wieder mit diesem Editor rumschlaegt)
-

-----------------------------------------------------------------------------



Stammtisch Frankfurt (Mundron,  9. Aug 2018, 13:30:43):
Auf eine neue Runde, nachdem ich die letzte verpatzt habe...

Ort: Zur Kutscherklause, Ostendstrasse 47, 60314 Frankfurt am Main
Webseite: www.kutscherklause.de
Datum: 01.09.2018
Uhrzeit: 19 Uhr (unter Vorbehalt)


-----------------------------------------------------------------------------



KA StaTis 20.9.-15.11. (Croft, 13. Sep 2018, 23:11:38):
Hier sind die naechsten Lokale:
20.09.18 La Terrazza - Wachhausstr. 15
27.09.18 Lago Bowling-Center - www.lago-bowling.de
04.10.18 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
11.10.18 Chiang Mai - Durlacher Allee 11
18.10.18 FG1 - www.fg-eins.de
25.10.18 Beim Griechen - Steinmannstr. 1, Rppurr
01.11.18 San Marco - www.sanmarco-ka.de
08.11.18 Jasmin - Marktstr. 16, Ettlingen
15.11.18 Antalya - www.antalya-karlsruhe.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 20.9.-15.11. (Croft, 17. Sep 2018, 22:56:33):
~#! rn=Croft rt=1536873098 rg=treffen.bekanntmachungen
~#! tid=1536873098
La Terrazza scheint im Sommerurlaub zu sein. Ersatz TBD.

Croft

-----------------------------------------------------------------------------



Stati in Bochum, 14.10.2018 (Humni, 11. Okt 2018, 10:54:05):
Hallo ihr,

Nach doch mehrmonatiger Abstinenz haben wir das Gefuehl, dass das Bochumer
Bermudadreieck uns dringend mal wieder braucht ...

Darum werden wir also diesen Sonntag wieder einen Stammtisch abhalten.

Er wird wie immer ab 11 Uhr stattfinden, und vor 12 Uhr wird keiner da sein,
einige werden sicher auch erst spaeter kommen. Und wie immer treffen wir uns
im Mandragora.

Humni

-----------------------------------------------------------------------------



Stati in Bochum am 4.11.2018 (Humni,  3. Nov 2018, 21:17:19):
Hallo ihr,

wer das gerade schon gelesen hat: Besser ist eine Ankuendigung mit neuem Topic
und richtigem Datum ;-)

Wieder wollen wir uns in Bochum treffen! Morgen, am 04.11., wie immer ab 11 im
Mandragora, und wie immer wird vor 12 niemand da sein. Wir sind auch frueher
wieder weg, aber das hindert ja niemanden daran, auch spaeter dahinzukommen.

So, nun aber. Kommet zuhauf und so.

Humni

-----------------------------------------------------------------------------



KA StaTis 22.11.-24.1. (Croft, 15. Nov 2018, 22:47:44):
Und die naechste Liste:
15.11.18 Antalya - www.antalya-karlsruhe.de
22.11.18 La Terrazza - Wachhausstr. 15
29.11.18 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
06.12.18 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
13.12.18 Il Caminetto - Kronenstr. 5
20.12.18 Kouros - www.restaurant-kouros.de
27.12.18 --- - 
03.01.19 Marktlcke - www.karlsruhermarktluecke.de
10.01.19 El Taquito - www.el-taquito.de
17.01.19 Im Schlachthof - imschlachthof.de
24.01.19 Soki Garden - www.sokigarden.com

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 22.11.-24.1. (Croft, 16. Nov 2018, 08:51:33):
~#! rn=Croft rt=1542318464 rg=treffen.bekanntmachungen
~#! tid=1542318464
Korrektur:
22.11.18 La Terrazza - Wachhausstr. 15
29.11.18 FG1 - www.fg-eins.de
06.12.18 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
13.12.18 Il Caminetto - Kronenstr. 5
20.12.18 Kouros - www.restaurant-kouros.de
27.12.18 --- - 
03.01.19 Marktlcke - www.karlsruhermarktluecke.de
10.01.19 El Taquito - www.el-taquito.de
17.01.19 Im Schlachthof - imschlachthof.de
24.01.19 Soki Garden - www.sokigarden.com

Croft

-----------------------------------------------------------------------------



Re: Re: KA StaTis 22.11.-24.1. (Croft, 23. Nov 2018, 09:11:10):
~#! rn=Croft rt=1542354693 rg=treffen.bekanntmachungen
~#! tid=1542318464
Es ist eine Rotation zu vermelden:
29.11.18 FG1 - www.fg-eins.de
06.12.18 Kouros - www.restaurant-kouros.de
13.12.18 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
20.12.18 Il Caminetto - Kronenstr. 5
27.12.18 --- - 
03.01.19 Marktlcke - www.karlsruhermarktluecke.de
10.01.19 El Taquito - www.el-taquito.de
17.01.19 Im Schlachthof - imschlachthof.de
24.01.19 Soki Garden - www.sokigarden.com

Croft

-----------------------------------------------------------------------------



Stammtisch Marburg (Mundron, 24. Nov 2018, 22:48:46):
Es wurde ein Stammtisch fuer Marburg angeregt, welchem ich auch nachkommen
moechte. Daher habe ich nach Absprache folgende Reservierung vorgenommen:
Cafe Mocca
Pilgrimstein 31
35037 Marburg

Datum: 01.12.2018
Uhrzeit: 19:00 Uhr

Reserviert auf den Namen Will (denn du WILLST hingehen!)

-----------------------------------------------------------------------------



Bochum futtert, Bochum bruncht! Am 2.12. (Humni, 30. Nov 2018, 23:39:37):
Hallo ihr,

Bochum wird wieder einmal brunchen.
Da braucht man nicht mit Nuessen crunchen.
Stattdessen kommt man gegen zwoelf Uhr
Ins Mandragora. Da wartet man nur
endliche Zeit, bis jemand kommt.
Passiert meistens. Nicht immer prompt.

Am 2.12. wird das sein.
Los. Hingehn. Gibt Bier. Und Wein.
Ist aber viel zu frueh dafuer.
Drum isst man da lieber Ruehr-
eier und was man sonst noch essen kann.
Es kommen also alle an!

Humni

-----------------------------------------------------------------------------



Re^3: KA StaTis 22.11.-24.1. (Croft,  1. Dez 2018, 11:03:26):
~#! rn=Croft rt=1542960670 rg=treffen.bekanntmachungen
~#! tid=1542318464
Kouros und China City haben noch die Termine getauscht.

Croft

-----------------------------------------------------------------------------



Re^4: KA StaTis 22.11.-24.1. (Croft,  6. Dez 2018, 22:22:12):
~#! rn=Croft rt=1543658606 rg=treffen.bekanntmachungen
~#! tid=1542318464
Und das Kouros hat keinen Platz mehr fuer uns.  Also geht es zum Beim
Griechen.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum am 23.12.2018 (Humni, 19. Dez 2018, 22:52:33):
Hallo ihr!

Ich habe zwar noch keine Ahnung, ob wir dabeisind, aber es werden Leute am
Sonntag im Mandragora stammtischen. Das wird so ab 11 Uhr geschehen. Mit etwas
Glueck sind ab 12 Uhr Leute da. Oder ab 13 Uhr.

Viel Spass an die, die kommen. Vielleicht auch an mich selbst!

Humni

-----------------------------------------------------------------------------



Stammtisch Marburg, 19.01.2019 (Mundron,  9. Jan 2019, 15:21:24):
Neues Jahr, neues Glueck.

Kommet zuhauf!
Wohin?
Ort: Maxx in Marburg
Adresse: Barfuesserstr. 55, 35037 Marburg
Webseite: maxxbar.de

Wann?
Datum: 19.01.
Uhrzeit: 19:01

Wieso?
Weil es toll ist dabei zu sein!

Anmeldung?
Waere schoen bei mir, zwecks Platzreservierung.

Fragen?
Bei Risiken oder Nebenwirkungen, fragen Sie ihren Arzt oder Apotheker.
Bei sonstigen Fragen gerne an mich wenden :D

Kosten?
Nur das, was ihr selbst esst und trinkt :P

-----------------------------------------------------------------------------



KA StaTis 31.1.-11.4. (Croft, 31. Jan 2019, 22:05:50):
Und die naechsten Termine:
31.01.19 La Terrazza - Wachhausstr. 15
07.02.19 Jasmin - Marktstr. 16, Ettlingen
14.02.19 Bratar - Erbprinzenstr. 27 www.bratar.de
21.02.19 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
28.02.19 FG1 - www.fg-eins.de
07.03.19 San Marco - www.sanmarco-ka.de
14.03.19 Kouros - www.restaurant-kouros.de
21.03.19 Alibaba - www.alibaba-ka.de
28.03.19 Shalimar - Leopoldstr. 28, Ettlingen
04.04.19 Tialini - www.tialini.com/restaurant/karlsruhe/
11.04.19 Marktlcke - www.karlsruhermarktluecke.de
Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch in Bochum, 24.02.2019 (Arathorn, 23. Feb 2019, 19:34:56):
Moin!

morgen treffen wir uns wieder mal zum Stammtisch im Mandragora, Konrad-
Adenauer-Platz 1. Wie immer ist Beginn um 11:00 Uhr, aber vor 12:00 Uhr 
wird traditionell niemand da sein. :-)

Kommen zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Stammtisch in Bochum, 10.03.2019 (Arathorn,  7. Mar 2019, 18:52:04):
Moin!

Wir treffen uns wieder mal zum Stammtisch im Mandragora, Konrad-Adenauer-
Platz 1. Wie immer ist Beginn um 11:00 Uhr, aber vor 12:00 Uhr wird (wie
immer) niemand da sein. Diesmal dafuer mit auswaertigen Gaesten. :-)

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Stammtisch in Bochum, 31.03.2019 (Arathorn, 27. Mar 2019, 23:38:38):
Moin!

Wir treffen uns wieder mal zum Stammtisch im Mandragora, Konrad-Adenauer-
Platz 1. Wie immer ist Beginn um 11:00 Uhr, aber vor 12:00 Uhr wird (wie
immer) niemand da sein.

Kommet zuhauf!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Fressstammtisch Berlin, 10.06.2019 (Gloinson, 28. Apr 2019, 15:01:22):
Moinsen,

in den Pfingsferien BaWue 2019 besuchen wir am Pfingstmontag, den 10.6.2019
Berlin. Das ist doch ein guter Anlass, sich mal wieder zu treffen und zu
futtern. Ich futtere eure Kinder und meine Kinder futtern euch. Ha!

Koemmet zu Hauf!

Bitte meldet euch kurz bei mir, wenn ihr zu kommen plant, damit ich dem Laden
Zahlen nachmelden kann (bisher dabei: Cakey++, Maharet++, [diverse Berliner],
circa 20 Personen).

Ort:
http://www.dieturnhalle.de
Die Turnhalle
Holteistr. 6-9
10245 Berlin

Zeit:
* ab 10 Uhr auf Becker reserviert, bis 15 Uhr Essen
  (Sonn- & Feiertagsbrunch von 10:00-15:00 Uhr fuer 16,90 Euro inklusive Live
   Cooking Waffelstation)


-----------------------------------------------------------------------------



KA StaTis 18.4.-20.6. (Croft,  2. Mai 2019, 19:05:10):
18.04.19 El Taquito - www.el-taquito.de
25.04.19 Il Caminetto - Kronenstr. 5
02.05.19 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
09.05.19 FG1 - www.fg-eins.de
16.05.19 Chiang Mai - Durlacher Allee 11
23.05.19 Beim Griechen - Steinmannstr. 1, Rueppurr
30.05.19 San Marco - www.sanmarco-ka.de
06.06.19 Im Schlachthof - imschlachthof.de
13.06.19 Zum Elsternest - www.zum-elsternest.de
20.06.19 Soki Garden - www.sokigarden.com

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 18.4.-20.6. (Croft,  9. Mai 2019, 23:31:53):
~#! rn=Croft rt=1556816710 rg=treffen.bekanntmachungen
~#! tid=1556816710
Da das FG1 heute nicht mehr reservierbar war, waren wir im Hoepfner Burghof.
Falsche Gebaeudeseite oder so.  Und das FG1 empfaengt uns dann naechste Woche.
Statt Chiang Mai.

Croft

-----------------------------------------------------------------------------



KA goes FlaKu 2019 (Croft,  9. Mai 2019, 23:46:25):
Das Karlsruher Rudel und ein paar Gaeste werden am 6. Juli mal wieder ins
Elsass zur rituellen Flammkuchenvertilgung fahren.  Wer mit dabei sein
moechte melde sich bis Ende Juni bei mir damit passend reserviert werden
kann.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 16.06. (Humni, 15. Jun 2019, 10:41:19):
Hallo ihr,

wie immer alle zwei Wochen (oder so) wollen wir uns auch an diesem Sonntag im
Mandragora treffen. Da diesmal allerdings einige ausschlafen wollen, wird das
eher ein wenig spaeter. Vermutlich ist ab 13 Uhr mit Leuten zu rechnen.

Humni

-----------------------------------------------------------------------------



KA StaTis 27.6.-25.7. (Croft, 25. Jun 2019, 00:48:31):
Und die naechsten Termine:
27.06.19 El Taquito - www.el-taquito.de
04.07.19 Chiang Mai - Durlacher Allee 11
06.07.19 Auberge de la Foret - www.auberge-foret-seltz.com
11.07.19 Beim Griechen - Steinmannstr. 1, Rueppurr
18.07.19 La Terrazza - Wachhausstr. 15
25.07.19 Marktlcke - www.karlsruhermarktluecke.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 25.7.-8.8. (Croft, 21. Jul 2019, 13:19:50):
25.07.19 Marktluecke - www.karlsruhermarktluecke.de
01.08.19 Zum Elsternest - www.zum-elsternest.de
08.08.19 Shalimar - Leopoldstr. 28, Ettlingen

Beginn wie immer um 20:00.  Desweiteren wird es vermutlich am 25.7. noch
einen weiteren Karlsruher Stammtisch in Hattingen oder Bochum geben.
Details folgen.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 25.08.2019 (Arathorn, 22. Aug 2019, 21:08:15):
Moin,

es gibt mal wieder einen Stammtisch im Ruhrgebiet, Datum siehe oben. Wir
treffen uns wie immer im Mandragora, Konrad-Adenauer-Platz 1. Offizieller
Start ist traditionell um 11:00 Uhr, aber vor 12:00 Uhr ist ueblicherweise
niemand da. Auch das hat Tradition.

Gruss, Arathorn.

-----------------------------------------------------------------------------



KA StaTis 15.8.-5.9. (Croft, 27. Aug 2019, 22:56:31):
15.08.19 Bratar - Erbprinzenstr. 27 www.bratar.de
22.08.19 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
29.08.19 Soki Garden - www.sokigarden.com
05.09.19 Il Caminetto - Kronenstr. 5

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 12.9.-31.10. (Croft,  5. Sep 2019, 22:26:24):
12.09.19 Marktluecke - www.karlsruhermarktluecke.de
19.09.19 Brousko - brousko.de
26.09.19 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
03.10.19 Marianne's Flammkuchen - www.mariannes-flammkuchen.de
10.10.19 Chiang Mai - Durlacher Allee 11
17.10.19 El Taquito - www.el-taquito.de
24.10.19 Jaipur - jaipur-ka.de
31.10.19 San Marco - www.sanmarco-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 7.-21.11. (Croft,  2. Nov 2019, 12:12:19):
07.11.19 La Terrazza - Wachhausstr. 15
14.11.19 Soki Garden - www.sokigarden.com
21.11.19 Brousko - brousko.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 28.11.-9.1. (Croft, 26. Nov 2019, 20:27:50):
Die naechsten Termine:
28.11.19 Holzhacker - www.holzhacker-karlsruhe.de
05.12.19 Chiang Mai - Durlacher Allee 11
12.12.19 San Marco - www.sanmarco-ka.de
19.12.19 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM
02.01.20 Brousko - brousko.de
09.01.20 Marktlcke - www.karlsruhermarktluecke.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stammtisch 11.12. in Marburg (Maunzerle, 10. Dez 2019, 21:48:06):
Huhu!

Wir treffen uns am 11.12. (also morgen) um 20:30 Uhr im Tandoori
(Biegenstrasse 23, https://www.tandoori-marburg.de/).
Ihr seid alle herzlich eingeladen!

Miau,
Maunzerle

-----------------------------------------------------------------------------



KA StaTis 16.1.-27.2. (Croft, 20. Jan 2020, 20:48:03):
16.01.20 La Dolce Vita - www.la-dolcevita.de
23.01.20 Beim Griechen - Steinmannstr. 1, Rppurr
30.01.20 Chiang Mai - Durlacher Allee 11
06.02.20 La Terrazza - Wachhausstr. 15
13.02.20 Brousko - brousko.de
20.02.20 El Taquito - www.el-taquito.de
27.02.20 Im Schlachthof - imschlachthof.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 16.1.-27.2. (Croft, 25. Jan 2020, 18:26:14):
~#! rn=Croft rt=1579549683 rg=treffen.bekanntmachungen
~#! tid=1579549683
Zwei Lokale wurden getauscht:
30.01.20 Chiang Mai - Durlacher Allee 11
06.02.20 Brousko - brousko.de
13.02.20 La Terrazza - Wachhausstr. 15
20.02.20 El Taquito - www.el-taquito.de
27.02.20 Im Schlachthof - imschlachthof.de

Croft

-----------------------------------------------------------------------------



KA StaTis 5.3.-7.5. (Croft, 27. Feb 2020, 23:23:31):
05.03.20 Chiang Mai - Durlacher Allee 11
12.03.20 Il Caminetto - Kronenstr. 5
19.03.20 Panorama - www.panorama-karlsruhe.eu
26.03.20 Marktlcke - www.karlsruhermarktluecke.de
02.04.20 Deli Burgers - www.deliburgers.de
09.04.20 La Dolce Vita - www.la-dolcevita.de
16.04.20 Brousko - brousko.de
23.04.20 Soki Garden - www.sokigarden.com
30.04.20 Badischer Hof - www.badischer-hof-ettlingen.de
07.05.20 El Taquito - www.el-taquito.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 5.3.-7.5. (Croft, 16. Mar 2020, 19:37:10):
~#! rn=Croft rt=1582842211 rg=treffen.bekanntmachungen
~#! tid=1582842211
Die StaTis liegen auf Grund der aktuellen Begebenheiten erstmal auf Eis.

Croft

-----------------------------------------------------------------------------



KA StaTis 11.-25.6. (Croft, 19. Jun 2020, 10:52:22):
11.06.20 Chiang Mai - Durlacher Allee 11
18.06.20 El Taquito - www.el-taquito.de
25.06.20 Il Caminetto - Kronenstr. 5

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 2.7.-6.8. (Croft, 26. Jun 2020, 08:51:05):
02.07.20 Marktlcke - www.karlsruhermarktluecke.de
09.07.20 Soki Garden - www.sokigarden.com
16.07.20 Zum Elsternest - www.zum-elsternest.de
23.07.20 La Terrazza - Wachhausstr. 15
30.07.20 Badischer Hof - www.badischer-hof-ettlingen.de
06.08.20 Im Schlachthof - imschlachthof.de

Beginn um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 12.7. (Humni, 10. Jul 2020, 22:29:59):
Trotz Corona wollen wir mal wieder einen Stammtisch veranstalten. Wenn wir zu
viele werden, machen wir mehrere Stammtische, haha.

Da wir gerade nicht genau wissen, welcher Laden da offen hat, wollen wir als
Treffpunkt schlicht das Bermudadreieck waehlen. Wir treffen uns am 12.7. um
13:00 Uhr am Ausgang vom Parkhaus am Konrad-Adenauer-Platz, quasi direkt am
Mandragora. Wenn das auf hat, kann man direkt dahin gehen, sonst schauen wir
mal.

Humni

-----------------------------------------------------------------------------



KA StaTis 13.-27.8. (Croft,  8. Aug 2020, 18:03:51):
13.08.20 La Dolce Vita - www.la-dolcevita.de
20.08.20 Gartenzwerg - www.gartenzwerg-karlsruhe.de
27.08.20 Brousko - brousko.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 3.-17.9. (Croft, 30. Aug 2020, 22:51:40):
03.09.20 Marktlcke - www.karlsruhermarktluecke.de
10.09.20 Soki Garden - www.sokigarden.com
17.09.20 Chiang Mai - Durlacher Allee 11

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 20.9.20 (Humni, 18. Sep 2020, 21:10:26):
Hallo ihr,

es gibt etwas zu feiern! Einen umdrehbaren Tag. Es ist egal, ob ihr 20-9-20
oder 20.9.20 schreibt, es ist BEIDES RICHTIG! Toll, was? Ihr koennt also
zeitgleich in Amerika und in Deutschland sein und das Datum stimmt!

Damit man dann auch einen Ort hat und nicht auf einmal im Raum-Zeit-Kontinuum
verlorengeht, dachten wir, wir legen uns auf Bochum fest. Auf das
Bermudadreieck. Wir werden uns dann wohl so um 12 Uhr treffen. Da wir keine
Ahnung haben, welche Gaststaette uns dann bedienen mag, werden wir uns am
Ausgang des Parkhauses am KAP (Konrad-Adenauer-Platz) treffen.

(Hat an dem Platz eigentlich mal jemand geputscht?)

Humni

-----------------------------------------------------------------------------



KA StaTis 24.9.-15.10. (Croft, 21. Sep 2020, 21:31:15):
24.09.20 Badischer Hof - www.badischer-hof-ettlingen.de
01.10.20 El Taquito - www.el-taquito.de
08.10.20 La Dolce Vita - www.la-dolcevita.de
15.10.20 Brousko - brousko.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Neuer Versuch in Bochum: 4.10. (Humni,  3. Okt 2020, 00:36:45):
Nachdem der letzte Stammtisch aus Krankheitsgruenden dann am Ende ganz
ausfiel, werden wir einen weiteren Versuch starten und uns am Sonntag, dem
4.10. treffen.

Da das Mandragora vermutlich immer noch dicht ist, werden wir uns daneben am
Ausgang des Parkhauses treffen. Um 12 Uhr.

Kommet zuhauf. Wir wollen schliesslich ordentlich stammtischen!

Humni

-----------------------------------------------------------------------------



Re: Neuer Versuch in Bochum: 4.10. (Masul,  4. Okt 2020, 09:57:39):
~#! rn=Humni rt=1601678205 rg=treffen.bekanntmachungen
~#! tid=1601678205
Ich werde kommen.

Masul

-----------------------------------------------------------------------------



KA StaTis 22.10.-12.11. (Croft, 18. Okt 2020, 21:25:36):
22.10.20 Hellas Salute - www.hellas-salute.de
29.10.20 5 Sterne - www.5-sterne-ka.de
05.11.20 La Terrazza - Wachhausstr. 15
12.11.20 Chiang Mai - Durlacher Allee 11

Die Orte sind erstmal nur festgelegt. Ob die Treffen stattfinden zeigt
sich jeweils kurzfristig.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 13.6. (Humni, 11. Jun 2021, 21:02:13):
Liebe Mudgemeinde,

die Aussengastronomie hat wieder auf. Und darum sollte man auch dringend
wieder ein paar RL-Treffen anberaumen. Wir fangen einfach mal an.

Wir wissen noch nicht genau, welche Kneipen da ihre Aussenbereiche offen
haben, darum treffen wir uns am 13.6. um 12 Uhr am Ausgang des Parkhauses am
Bermudadreieck, Konrad-Adenauer-Platz, Bochum.

Tests brauchen wir nur fuer die Innengastronomie, aber den kann man zur Not
direkt da machen lassen (da ist direkt ein Testzentrum). Und ich denke, wir
wollen eh draussen sitzen, aber das sehen wir dann.

Bis dann!

Humni

-----------------------------------------------------------------------------



Re: Stati in Bochum am 13.6. (Arathorn, 13. Jun 2021, 11:35:34):
~#! rn=Humni rt=1623438133 rg=treffen.bekanntmachungen
~#! tid=1623438133
Ich erhoehe mal aufgrund aktueller Informationen um 20 Minuten auf 12:20 Uhr.
:-)

Arathorn.

-----------------------------------------------------------------------------



KA StaTis 1.7.-19.8. (Croft,  1. Aug 2021, 20:44:51):
01.07.21 La Dolce Vita - www.la-dolcevita.de
08.07.21 Waldgaststtte FSSV - waldgaststaette-karlsruhe.de
15.07.21 La Terrazza - Wachhausstr. 15
22.07.21 Il Caminetto - Kronenstr. 5
29.07.21 Marktlcke - www.karlsruhermarktluecke.de
05.08.21 Chiang Mai - Durlacher Allee 11
12.08.21 Zum Elsternest - www.zum-elsternest.de
19.08.21 5 Sterne - www.5-sterne-ka.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 8.8. (Humni,  7. Aug 2021, 16:02:49):
Hallo ihr,

am 8.8. (ja, das ist morgen, wenn ihr das heute lest ... aeh ... gut, das ist
immer morgen, wenn ihr das am Tag vorher ... ach egal).

Also, am 8.8. wollen wir uns in Bochum zum Stammtisch treffen. Wie ueblich um
12 Uhr.

Wir werden uns wieder um 12 Uhr treffen, und da vermutlich das Mandragora noch
nicht offen hat (das Netz ist da ein wenig uneindeutig, wenn ist vermutlich da
nur der Biergarten geoeffnet) uns wieder am Eingang zum Parkhaus am
Konrad-Adenauer-Platz treffen.

Humni

-----------------------------------------------------------------------------



Re: KA StaTis 1.7.-19.8. (Croft, 12. Aug 2021, 11:50:18):
~#! rn=Croft rt=1627843491 rg=treffen.bekanntmachungen
~#! tid=1627843491
Der Stammtisch heute hat sich mangels Reservierungsmoeglichkeiten ins
Carls Wirtshaus www.carls-wirtshaus.de verschoben.

Croft

-----------------------------------------------------------------------------



KA StaTis 26.8.-9.9. (Croft, 21. Aug 2021, 00:36:41):
26.08.21 El Taquito - www.el-taquito.de
02.09.21 Im Schlachthof - imschlachthof.de
09.09.21 Soki Garden - www.sokigarden.com

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



KA StaTi 16.9. (Croft, 10. Sep 2021, 17:19:53):
Erstmal nur ein neuer Termin:
16.09.21 Panorama - www.panorama-karlsruhe.eu

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 23.-30.9. (Croft, 16. Sep 2021, 22:46:25):
23.09.21 La Terrazza - Wachhausstr. 15
30.09.21 Chiang Mai - Durlacher Allee 11

Beginn wie immer um 20:00

Croft

-----------------------------------------------------------------------------



Re: KA StaTis 23.-30.9. (Croft, 22. Sep 2021, 22:01:22):
~#! rn=Croft rt=1631825185 rg=treffen.bekanntmachungen
~#! tid=1631825185
Wegen Betriebsferien geht es morgen ins Il Caminetto (Kronenstr. 5

Croft

-----------------------------------------------------------------------------



KA StaTi 7.10. (Croft, 30. Sep 2021, 22:50:58):
07.10.21 Brousko - brousko.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum am 3.10. (Humni,  2. Okt 2021, 17:16:19):
Hallo ihr,

wieder mal wollen wir uns in Bochum treffen. Wie immer am Ausgang vom Parkhaus
Bermudadreieck oder wahlweise im Three Sixty. Wie immer gegen 12 Uhr.

Bis dann!

Humni, i.A. der anderen

-----------------------------------------------------------------------------



KA StaTis 14.-21.10. (Croft, 15. Okt 2021, 17:27:44):
14.10.21 Erste Fracht - www.erste-fracht.de
21.10.21 China City - Sushi Bar - Brauerstr. 40, im Filmpalast am ZKM

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



KA StaTis 28.10.-18.11. (Croft, 21. Okt 2021, 23:30:58):
28.10.21 La Terrazza - Wachhausstr. 15
04.11.21 Hellas Salute - www.hellas-salute.de
11.11.21 El Taquito - www.el-taquito.de
18.11.21 Im Schlachthof - imschlachthof.de

Beginn wie immer um 20:00.

Croft

-----------------------------------------------------------------------------



Stati in Bochum (Humni, 19. Mar 2022, 19:51:24):
Kurzfristig wird ein Stammtisch im Berumda-Dreieck in Bochum angesetzt.
Vermutlich wieder im 360, wir treffen uns um 12 wohl erstmal am Ausgang des
Parkhauses am Konrad-Adenauer-Platz. Ach ja, bevor ichs vergesse: Sonntag,
20.3.2022. So. ;-)

Bis dann!

Humni

-----------------------------------------------------------------------------



Stammtisch in Bochum (Humni, 10. Mai 2022, 22:41:22):
Hallo,

es ist unfassbar, aber wie aus wohlinformierten Kreisen berichtet wurde, hat
das Mandragora wieder offen. Dies moechten wir nach 2 Jahren Pandemie auch
besonders hervorheben und werden uns dort zum Behufe des Beweinens des
Schon-lange-nicht-mehr-vorhandenseins des Rueckensteaks Poivre mit Pommes an
diesem Sonntag, dem 15.5., mit euch treffen. Die Zeit wird wie ueblich so
gegen 12 Uhr sein, vermutlich werden einige erst gegen 13 Uhr kommen, aber
diesmal muss man ja nicht mehr am Parkhaus warten.

TLDR: Bochum. Mandragora. 15.5. 12 Uhr. 

-----------------------------------------------------------------------------



Bochum, 17.7.2022 (Humni, 17. Jul 2022, 00:15:52):
Hallo ihr,

der Bochumer Stammtisch findet heute, am 17.07.2022, ab 12 Uhr am Parkhaus im
Bermudadreieck statt.

Von dort aus wird er wandern.

Vermutlich ins Three Sixty.

Wie Stammtische das so tun.

Bis gleich!

Humni

-----------------------------------------------------------------------------



Re: Bochum, 17.7.2022 (Masul, 17. Jul 2022, 11:05:19):
~#! rn=Humni rt=1658009752 rg=treffen.bekanntmachungen
~#! tid=1658009752
Hallo Humni,
na endlich lese ich das mal rechtzeitig. Ich werde kommen.

... und Alles Gute zum Geburtstag! :-)

Masul

-----------------------------------------------------------------------------



KA StaTis (Croft, 19. Aug 2022, 08:52:28):
Stammtische in Karlsruhe finden seit einigen Monaten wieder statt.
Allerdings werden die Orte auf Grund Wetter und Gaesten mitunter auch
kurzfristig festgelegt/veraendert.  Wer mal in der Gegend ist (auch
abseits der Donnerstage): meldet euch bei mir.

Croft

-----------------------------------------------------------------------------



Bochum, 16.10. (Bugfix, 14. Okt 2022, 20:28:14):
Moin,

nach langer Pause findet am Sonntag, 16.10., mal wieder ein Stammtisch in
Bochum statt. Treffpunkt ist um 12 Uhr im Three Sixty im Bermuderdreieck.

Bugfix

-----------------------------------------------------------------------------



Bochum, 13.11. (Bugfix,  8. Nov 2022, 10:28:19):
Moin,

Der Naechste Bochumer-Stammtisch findet am 13.11. statt. Treffpunkt ist wie
ueblich um 12 Uhr im Three Sixty im Bermuderdreieck.

Bugfix

-----------------------------------------------------------------------------



Bochum, 01.10. (Humni, 29. Sep 2023, 20:14:50):
Hallo ihr,

nach langer Zeit (oder so) wollen wir wieder einmal das Bermudadreieck
unsicher machen. Wer also mag, kann sich um 12 Uhr am Ausgang des Parkhauses
am Konrad-Adenauer-Platz einfinden. Oder direkt im 360, die Wahrscheinlichkeit
ist hoch, dass wir da sind. Es sei denn, das Mandragora hat dann tatsaechlich
wieder auf, dann sind wir vermutlich da ...

Humni

-----------------------------------------------------------------------------



KA goes Flammkuchen 13.4. (Croft, 17. Mar 2024, 22:52:52):
Am Samstag den 13. April unternehmen die ueblichen Karlsruher Verdaechtigen
einen neuen Versuch den Flammkuchen im Elsass aufzuessen.

Croft

-----------------------------------------------------------------------------



Bochum, 16.6. (Humni, 11. Jun 2024, 19:29:23):
Hallo ihr,

wir muessen uns mal wieder treffen - in Bochum. Wir werden das darum tun.
Vermutlich im 360, und vermutlich wieder so ab 12 Uhr. Sonst halt am Ausgang
vom Parkhaus. Man wird sich finden.

Also, 16.6, 12 Uhr, Bochum, Bermudadreieck.

Humni

-----------------------------------------------------------------------------



