Hi,
du hast meinen Einwand nicht richtig verstanden:

fhem(
"get Kalender_Christian summary uid=$uid 1
");
fhem(
'get TestKalender events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1
',1);
Damit kommt die Abfolge der von dir kopierten Innereien, welche zahlreiche und exakt so gesetzten, wichtigen " und ' enthalten völlig durcheinander.
Eventuell brauchst Du einfach nur die ersten (" und letzten 1',1") gegen (' ... 1',1) austauschen. Aber probiert habe ich das jetzt noch nicht!
Edit:
Da ich es auch nicht wusste, eine kurze Erklärung zu der ,1 - fhem('Befehl'
,1) - am Ende des Aufrufes. Die Perl Funktion fhem() akzeptiert zwei Aufrufparameter -> ($param, $silent)
- der erste bis zum Komma ist der FHEM Befehl
- der zweite ist die Steuerung ob etwas ins Log geschrieben werden kann oder nicht. 1 (wahr) bedeutet silent -> schreibe keinen Fehler ins Log.
Man kann es gut austesten, indem man einen Fehlerhaften Befehl verwendet und mit und ohne ,1 probiert.
Ich hoffe ich habe es richtig interpretiert

Der Befehl muss als String übergeben werden, also entweder in ' ' oder in " ", der silent Parameter ist ein logischer Ausdruck!
Deswegen fhem('Befehl') oder fhem('Befehl',1) aber nicht fhem('Befehl,1') !
Gruß Otto