Clever, but I wish I didn't have to resort to such a sleazy kludge. If
there had been any way to do this inside the program code I would have
built it as a new API call within libical. It is rather stupid that
neither POSIX nor GNU thought anyone would have any use for a library call
that tells you the name of the timezone.
/etc/localtime is the same as /usr/share/zoneinfo/America/New_York (or
whatever your timezone is), but on any given system it could be a hard
link, a symbolic link, or a copy of the file. I've seen all three, and
that doesn't even account for system administrators changing it using
whatever method they want.
This kludge should work 99% of the time, since we can count on the fact
that libical is now using the timezone data in /usr/share/zoneinfo rather
than its own library. If it fails, it'll fall back to the old behavior of
defaulting to UTC. The rest of the time, we will hopefully not have to
RTFM all the people who are complaining that Citadel is changing the hour
on their calendar events.