Import large ICS calendars

OBM supports importing ICS calendars through _obm-ui_.
This process is divided in two steps:

* The ICS file is transferred (uploaded) from the client machine to the Apache web server.
* The ICS is then transmitted internally to an _obm-sync_ server for the actual import process.

As a result, the whole import process depends on a number of configuration settings:

| Component | Configuration File | Setting | Description | Default value |
| ---- |
| Apache | obm.conf (virtual host definition) | php_value upload_max_filesize. [Sample](#apacheconf) | The maximum size of uploaded files. | 10M |
| Apache | obm.conf (virtual host definition) | php_value post_max_size. [Sample](#apacheconf) | the maximum size of a POST request sent to the web server. | 10M |
| Tomcat | server.xml | Connector > maxPostSize. [Sample](#tomcatconf) | The maximum number of bytes that can be accepted by Tomcat. This value should match the value of _upload_max_filesize_. | 10485760 (10 megabytes) |
| Tomcat | obm_conf.ini | transaction-timeout. [Sample](#btmconf) | The maximum execution time of a transaction. Large imports may take long so this needs to be increased most of the time. See below for details. | 1 (minute) |

To import large (several megabytes) ICS files, the recommended values are as follows:

* Apache's _upload_max_filesize_ and Tomcat's _maxPostSize_ should be set to any value, as long as it's larger than the biggest file you want to import.
* The transaction timeout should be set according to this simple rule: _obm-sync_ imports events at approx. 300 events/minute. For instance, if your ICS contains 3000 events, you should set the transaction timeout to at least 10 minutes.

# Sample configurations


## Apache (OBM virtual host)

<VirtualHost *:443>
    ...
    php_value __post_max_size__ 10M
    php_value __upload_max_filesize__ 10M
    ...
</VirtualHost>


## Tomcat (_server.xml_)

<Server port="8005" shutdown="SHUTDOWN">
    ...
  <Service name="Catalina">
    <Connector port="8080" maxHttpHeaderSize="8192" __maxPostSize="10485760"__
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               URIEncoding="UTF-8"
               maxThreads="400"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="600000" disableUploadTimeout="true" />
    ...
  </Service>
</Server>


## Transaction Timeout (_/etc/obm/obm_conf.ini_)

[global]
__transaction-timeout=10__
...

Hombre