18F / fbopen

[DEPRECATED] An open API server, data import tools, and sample apps to help small businesses search for opportunities to work with the U.S. government.
Other
101 stars 45 forks source link

Make calendar link for search results an iCal link #11

Open kaitlin opened 10 years ago

kaitlin commented 10 years ago

Love the little calendar icon in the search results but I wanna click it so bad... https://fbopen.gsa.gov/?q=enterprise+software+development&show_closed=on&data_source=&naics=&parent_only=&p=

Do people still use iCal? I dunno, just a suggestion.

aaronsnow commented 10 years ago

This turns out to be surprisingly non-trivial to hand-code. There are some plugins. https://github.com/kbwood/icalendar and https://github.com/tardate/jquery.addtocalendar look promising, although both appear not to be maintained anymore. http://addthisevent.com/ looks especially nice ($70 or free depending on whether we count as a "non-profit").

polastre commented 10 years ago

Midas uses the iCalendar node package to provide webcal calendar entries that companies like Google and Apple can update automatically. I highly recommend it.

Our code is here, in the iCal function: https://github.com/Innovation-Toolkit/midas/blob/master/api/controllers/EventController.js#L152

NoahKunin commented 10 years ago

If you go with AddThisEvent, thankfully the creator didn't restrict free usage to non-profits, but to non-commercial use. They just used non-profits as an example. Since FBOpen is not a commercial endeavor [ :one: ] , you're in the clear.

But for future reference, the government is not a non-profit. Most gov lawyers I speak to seem to concur that fundamental to the concept of non-profits is that they are private entities. So regardless of the lack of profit making enterprise or that we don't pay taxes to ourselves, we cannot be a formally recognized non-profit.

:one:: I've read some lawyers that think the government is inherently a commercial enterprise. I believe that to be an absurd and fringe position.

marks commented 10 years ago

I'm not an expert on this but I do know that in order to serve a file, we'll need a server which the sample-www/ folder does not include and I didn't want to break that part by implementing this.

What I have done in the commit that follows is created a very generic API endpoint that creates a simple ICS file. For example, http://localhost:3000/v0/ics?uid=0&start=20140704&end=20140705&title=Independence%20Day&description=&location=Washington%20DC works. This should be fairly trivial to hook up to the sample-www code however I did not do this since I wasn't sure if people were OK with ICS code making it into the API.

This is just one way (of many) of going about this feature request.