It's likely this will have bugs for the weirdest things, and where I'd appreciate help as long as it's not making things too slow/heavy. It's currently very naive and simple and using https://deno.land/x/xml@2.1.3 for some minor parsing in some of the requests; I drew the line to stop supporting fields and actions as soon as it worked perfectly for me and my wife (Linux and Android + macOS and iOS).
That being said, here's the function to build a vCard: https://github.com/bewcloud/bewcloud/blob/b81710a720d7d6afc2...
And the function to parse a vCard: https://github.com/bewcloud/bewcloud/blob/b81710a720d7d6afc2...