Kronolith: Overview
What is Kronolith?
Kronolith is a web-based calendar application. In addition to the required
functions of creating, modifying, and deleting events, it currently
supports dynamic and mobile interfaces, CalDAV clients, shared calendars,
remote calendars, invitation management (iCalendar/iTip), free/busy
management, resource management, alarms, recurring events, tasks
integration (if the tasks application is installed), import and export
functions (iCalendar and CSV formats), and a number of different calender
views.
CalDAV Clients
CalDAV clients can directly access the internal calendars (and task lists)
of Kronolith. External calendars like events provided by other applications
or remote calendars are not provided to CalDAV clients.
How to configure access to the calendars and which CalDAV URLs to use
depends on the client. Below are a few examples on how to access CalDAV
resources from common calendar clients:
Thunderbird/Lightning
Lightning, the calendar add-on to Thunderbird, requires to subscribe to
each CalDAV calendar individually. In the "File" menu choose
"New", then "Calendar". In the following dialogs choose
"On the Network", then "CalDAV". Copy the "CalDAV
Subscription URL" from the "Subscription" tab of Kronolith's
calendar dialog into the "Location" field.
Apple iCal
CalDAV servers can be added in the "Preferences" dialog, at the
"Accounts" tab. Click on the "+" button and choose
"CalDAV" as the "Account Type" in the upcoming
dialog. Enter your user name and password into the correct fields. Copy the
"CalDAV Account URL" from the "Subscription" tab of
Kronolith's calendar dialog into iCal's "Server Address" field.
Evolution
Evolution requires to subscribe to each CalDAV calendar individually. In
the "File" menu choose "New", then
"Calendar". Choose "CalDAV" as the "Type" in
the upcoming dialog. Copy the server name of the "CalDAV Subscription
URL" from the "Subscription" tab of Kronolith's calendar
dialog into the "Server" field. Copy the path of the URL to the
"Path" field. E.g. if your Subscription URL is
"http://www.example.com/rpc/calendars/user/calendar:xyz/", then
copy "www.example.com" to the "Server" field and
"/rpc/calendars/user/calendar:xyz/" to the path field.
Alarms
Kronolith can generate alarms for events in a calendar. The alarm can be
set (per event) to occur at almost any interval before the event start
time.
Recurring Events
Events can be made to repeat in various ways. Many events repeat in certain
frequently used ways. For example, the "Monthly" recurrence types
make the selected item repeat each month and the "Weekly"
recurrence type makes the selected item repeat each week. These can be
made to represent events that repeat in complex ways: for example, an item
that occurs on the third Friday of each month, or an item that occurs on
Monday, Wednesday, and Friday every week.
You can also restrict how long an event repeats by selecting the end date
or a recurrence count for the event's recurrence.
Normally, a modification to a repeating event applies to all occurrences of
that event. A single occurrence of a repeating event can be modified by
editing the occurrence, removing its recurrence information, and then
choosing the "Save as New" option from the Repeat menu. The
selected occurrence can now be modified independently of the other
occurences.
Embedding
It is possible to embed small views of your calendars in external websites.
You can embed the same views that you can place on Horde's portal page. The
following are examples of code to use to embed each view on an external
blog or website. You should obviously edit the code with the correct server
address and calendar name. The 'container' parameter is arbitrary, but must
both match the DOM id of the div element and be unique across the whole
page you are embedding in.
To embed a small Month View of the current month:
<div id="kronolithCal"></div><script
src="http://hostname.example.com/horde/services/ajax.php/kronolith/embed?
container=kronolithCal&view=Monthlist"type="text/javascript">
</script>
To embed an Upcoming Events View (note the 'months' and 'maxevents'
parameters):
<div id="kronolist"></div><script
src="http://hostname.example.com/horde/services/ajax.php/kronolith/embed?
view=Monthlist&calendar=calendar_name&container=kronolist&
months=2&maxevents=10" type="text/javascript">
</script>
To embed a Summary View:
<div id="kronosummary">
</div><script type="text/javascript"
src="http://hostname.example.com/horde/services/ajax.php/kronolith/embed?
container=kronosummary&view=Summary&calendar=calendar_name
"></script>