I'm working on a Ruby script that will take a students class schedule out of our campus LDAP system, convert it into ICS format, and then push that into their Zimbra account using the curl commands.

I've gotten my Ruby code to the point where I can get the LDAP information I need (Ruby ActiveLdap), and convert the ldap data into ICS format (Ruby iCalendar). Is there a way to submit the ICS information to Zimbra without creating a physical ICS file on the system?

I could create an ICS file with the Ruby iCalendar libraries, and then push it into zimbra with something like this...

results =`curl -u #{account}:password --data-binary @/tmp/somefile.ics http://#{mailhost}/service/home/#{account}/calendar?fmt=ics`
...but I'm wondering does the ICS have to be in a file? I have the ICS data in a calendar object I am passing into a function. Is there a way to tell curl to read the ICS data from the object....rather than having to print it out to a file first? It's an extra time consuming (and disk consuming) step that I don't want to do if I don't have to.

If I need to clarify any of this let me know.