";
$out .= " ".(($de)?'Symbol' :'Symbol')." | " if($seen{Symbol});
if ($small) { # nur ein Datumfeld umbrechbar
$out .= " ".(($de)?'Start' :'Begin')." | " if($seen{Begin});
$out .= " ".(($de)?'Ende' :'End')." | " if($seen{End});
} else {
$out .= " ".(($de)?'Start' :'Begin')." | " if($seen{Begin});
$out .= " ".(($de)?'----' :'----')." | " if($seen{Begin});
$out .= " ".(($de)?'Ende' :'End')." | " if($seen{End});
$out .= " ".(($de)?'----' :'----')." | " if($seen{End});
}
$out .= " ".(($de)?'Resttage' :'Days left')." | " if($seen{DaysLeft});
$out .= " ".(($de)?'Terminziel' :'Goal')." | " if($seen{DaysLeftLong});
$out .= " ".(($de)?'Wochentag' :'Weekday')." | " if($seen{Weekday});
$out .= " ".(($de)?'Zeitzone' :'Timezone')." | " if($seen{Timezone});
$out .= " ".(($de)?'Zusammenfassung' :'Summary')." | " if($seen{Summary});
$out .= " ".(($de)?'Beschreibung' :'Description')." | " if($seen{Description});
$out .= " ".(($de)?'Status' :'State')." | " if($seen{Status});
$out .= " ".(($de)?'Erfüllung (%)' :'Completion (%)')." | " if($seen{Completion});
$out .= " ".(($de)?'Ort' :'Location')." | " if($seen{Location});
$out .= " ".(($de)?'Karte' :'Map')." | " if($seen{Map});
$out .= " ".(($de)?'Kalender' :'Calendar')." | " if($seen{Calendar});
$out .= " ".(($de)?'ID' :'ID')." | " if($seen{EventId});
$out .= "
";
}
my $maxbnr;
foreach my $key (keys %{$defs{$name}{READINGS}}) {
next if $key !~ /^(\d+)_\d+_EventId$/;
$maxbnr = $1 if(!$maxbnr || $1>$maxbnr);
}
return "" if(!defined $maxbnr);
my $l = length($maxbnr);
my $k;
for ($k=0;$k<=$maxbnr;$k++) {
my $bnr = sprintf("%0$l.0f", $k); # Prestring erstellen
last if(!ReadingsVal($name, $bnr."_98_EventId", "")); # keine Ausgabe wenn es keine EventId mit Blocknummer 0 gibt -> kein Event/Aufgabe vorhanden
($begind,$begint,$endd,$endt,$gps) = ("","","","","");
$summary = ReadingsVal($name, $bnr."_01_Summary", "");
$desc = ReadingsVal($name, $bnr."_03_Description", "");
$begin = ReadingsVal($name, $bnr."_05_Begin", "");
$end = ReadingsVal($name, $bnr."_10_End", "");
$tz = ReadingsVal($name, $bnr."_15_Timezone", "");
$status = ReadingsVal($name, $bnr."_17_Status", "");
$dleft = ReadingsVal($name, $bnr."_20_daysLeft", "");
$dleftlong = ReadingsVal($name, $bnr."_25_daysLeftLong", "");
$weekday = ReadingsVal($name, $bnr."_30_Weekday", "");
$location = ReadingsVal($name, $bnr."_35_Location", "");
$gpsa = ReadingsVal($name, $bnr."_40_gpsAddress", "");
$gpsc = ReadingsVal($name, $bnr."_45_gpsCoordinates", "");
$completion = ReadingsVal($name, $bnr."_85_percentComplete", "");
$cal = ReadingsVal($name, $bnr."_90_calName", "");
$id = ReadingsVal($name, $bnr."_98_EventId", "");
$isallday = ReadingsVal($name, $bnr."_50_isAllday", "");
if($gpsc) {
my $micon;
if ($mi eq "icon") {
# Karten-Icon auswählen
$di = "it_i-net";
eval { $micon = SSCal_evalTableSpecs ($hash,$di,$hash->{HELPER}{tableSpecs}{columnMapIcon},$bnr,\@allrds,"image"); };
Log3($name, 1, "$name - Syntax error in attribute \"tableSpecs\" near \"columnMapIcon\": $@") if($@);
} elsif ($mi eq "data") {
$micon = join(" ", split(",", $gpsc));
} elsif ($mi eq "text") {
# Karten-Text auswählen
my $dt = "link";
eval { $micon = SSCal_evalTableSpecs ($hash,$dt,$hash->{HELPER}{tableSpecs}{columnMapText},$bnr,\@allrds,"string"); };
Log3($name, 1, "$name - Syntax error in attribute \"tableSpecs\" near \"columnMapText\": $@") if($@);
} else {
$micon = "";
}
my ($lat,$lng) = split(",", $gpsc);
$lat = (split("=", $lat))[1];
$lng = (split("=", $lng))[1];
# Kartenanbieter auswählen
my $up = "GoogleMaps";
eval { $up = SSCal_evalTableSpecs ($hash,$up,$hash->{HELPER}{tableSpecs}{columnMapProvider},$bnr,\@allrds,"string"); };
Log3($name, 1, "$name - Syntax error in attribute \"tableSpecs\" near \"columnMapProvider\": $@") if($@);
if ($up eq "GoogleMaps") { # Kartenprovider: Google Maps
$gps = "