Iām glad you asked about this @FarmTech ! I actually looked into the feasibility of this for farmOS 2.x a couple weeks ago. Iāve been meaning to share what I found so I might use this issue to do so 
Basically there are two options: the iCal calendar format, and the CalDav calendar/server protocol. iCal is the simpler of the two & can save calendar events to a .ics file, while CalDav (a subset of WebDav) has many more features (like username/pass authentication) but requires that a server is running in order to retrieve data.
TLDR; I think iCal is likely the best (and simplest) bet for farmOS! If I have time Iām hoping to implement this in a custom module before Spring because Iād love to sync my garden tasks to my calendar 
farmOS iCal:
I found the Drupal views_ical module and tested it with the development version of farmOS 2.x (looking again I see that there is a version of this module for Dupal 7, too). The configuration was pretty cumbersome (poorly documented & lots of āgotchasā), but eventually I got it to work!
I was able to create āViewsā of farmOS logs in an iCal Feeds format. Visiting the link allows you to download a calendar.ics file and import into you calendar app, OR use the same link as a āCalendar subscriptionā in most calendar apps. I tested both of these options with local calendars apps on my computer (macOS Calendar and Thunderbird). I couldnāt test the subscription with Google Calendar since my farmOS serer wasnāt running on a public domain (just on my computer), but the import worked, so Iām confident the subscription would work too!
Each event can have a link to the log, include notes, flags, etc. Thereās really a lot that is possible. I just found that the Views setup was quite complicated. I think this could be simplified by creating a feeds/export system that is dedicated to farmOS Logs.
The major complication/limitation with the calendar subscription option is data privacy (this has been mentioned before, perhaps on this forum or elsewhere). This requires that the farmOS server have a publicly accessible URL that the calendar app can subscribe too. As a result, this means that a subset of the farmOS logs + log metadata would become publicly accessible. A couple options around this are using randomly generated URLs OR require private keys to access well-known calendar URLs. Such URLs might looks like: /calendars/{secret_id} or /calendars/logs/harvests?secret={secret_id}. Changing the secret values would require a change in all subscribed calendar apps.
BUT the ability to manually download an .ics file & manually import into your calendar app wouldnāt have this concern! Files could be generated & downloaded when you are logged into farmOS, no URL would have to be public. It would just become a chore to do this on a regular basis, thatās what nice about the subscription 
farmOS CalDav:
Like I said above, CalDav can have more features (not only events, but also tasks + contacts) and can also require username + password Authentication since it runs on a server. This is basically whatās used to add a Gmail calendar to your phone or computer calendar app.
I looked into this option some too - since farmOS is running on a server, it should be possible as well. The sabre/dav library is probably the best bet here. I was actually able to create a module that provided a sabre/dav server within farmOS. The library is actually pretty great; itās designed for applications that want to provide a WebDav server connected to their specific data model - exactly the missing link for providing farmOS Logs as Calendar events!
Getting this to work is fairly tricky⦠this laravel-sabre repo was a good reference. It does something similar to what we would need, essentially instantiating the calendar server on EACH request, provide āeventsā (logs) to the server, build a response, and go back to sleep⦠itās possible, but maybe not ideal. I also see it being more difficult to create calendars that only display certain types of logs.
What would really make WebDav worthwhile is the Authentication. Because sabre/dav allows custom Authentication Backends I think it might be possible to connect the farmOS/Drupal Authentication to the caldav server but I didnāt get far enough to test this out. It also raises a bunch of other questions like permissions (who has access to calendars), changing passwords, etcā¦
So that saidā¦
I think iCal is probably the easiest calendar format to add to farmOS. But I wasnāt satisfied with views_ical. Since farmOS really only needs to export Logs as events (is there anything else??) I donāt think we need the Views integration, itās just too robust. Creating iCal feeds of Logs would be pretty simple by itself. Iād love to see a dedicated UI where users could create āCalendarsā and specify which logs are included. Some ideas:
- All logs
- Only logs of certain type(s): only activity or harvest logs, etc
- Only logs with certain flag(s) or categories
- Only logs happening in certain area(s) or pertaining to certain asset(s)
- Only logs in certain plans
I think that is all possible!! Each āCalendarā could have itās own URL and/or secret key.
*paul121 ends brain dump