I actually like the program xcal, but not only is it not in FreeBSD ports, the only place I can find a copy of the source is in Debian's source pools.
And the source won't build because clang doesn't translate ancient imake rules/macros right: X11.rules exists, but it's trying to include ' X11 .rules' (spurious spaces).
xcalpr.c:89:21: error: initializer element is not constant
static FILE *fout = stdout;
Everything I'm reading says that hasn't been valid C since before ANSI standardization way back in the '80s.
It built, it installed, and it works exactly on my new FreeBSD 11.1-RELEASE #Unix PC like it did on my old Debian Jessie #Linux PC!
Have the fruits of my labor: http://files.thornton2.com/packages/unix/xcal-4.1-patched-for-freebsd.tar.gz
Inside is the unpatched xcal 4.1 source tarball from Debian Sid (as of last week), my patch file, and my notes for applying the patch.
(Packages screenies & desc: https://screenshots.debian.net/package/xcal )
I don't expect it matters to too many other people, but I'm excited and happy. Anyway, a screenie (croppped) of xcal running and partly customized on my PC: https://computerfairi.es/media/W40bNZdWr2Bhudlybqw
(My window manager is x11-wm/wmx.)
The patch file is a unified diff that contains at least one unified diff nested within.
I sure hope patch processes files in lines from first to last, because that's how I'm making and skipping the hand-editing. :/