dpcalendar caldav

The past few posts have been looking at the DAV family of protocols (WebDAV, CalDAV and CardDAV). Today’s post will look at how DPCalendar implements CalDAV so that you may use it to sync with your other Web-based calendars, scheduling software and various mobile devices.

Here at Digital Peak, we have made the decision that DPCalendar will fully adhere to the CalDAV open standard. Hence, DPCalendar supports the integration of CalDAV calendar services (e.g. iCloud, iCal, ownCloud) and offers CalDAV access to its native calendars (i.e. acts as a CalDAV server as well). When integrating, you can either subscribe to a CalDAV calendar or opt for full synchronisation (either way, changes made in DPCalendar will be reflected in your CalDAV calendars as well).

CalDAV integration

Like everything else DPCalendar does, integration with CalDAV-aware Web-based calendars (like iCloud or ownCloud) is implemented through a CalDAV plugin (for more information, visit https://joomla.digital-peak.com/documentation/58-dpcalendar/766-caldav-plugin; this essentially is the same way Google calendars are supported). You can even integrate DPCalendar from another site through CalDAV into your existing Joomla site. The plugin also integrates with calendars even if they do not have Web-based interfaces (e.g. desktop calendaring software) as long as they support the CalDAV protocol.

Acting as a client, DPCalendar’s CalDAV plugin supports the editing events on the remote CalDAV server. Essentially, if you have the Joomla permissions to edit the CalDAV details, then you can change the CalDAV integrated events (regardless of which calendars the events come from) directly within Joomla. This means that you can use DPCalendar to manage all of your calendars and schedules directly.

CalDAV server

DPCalendar can also act as a CalDAV server for its native events (for a more thorough description of how you can access DPCalendar through CalDAV, click here). In this case, you can use any CalDAV client to gain access to DPCalendar events and schedules. Each individual calendar set up on your Joomla sita via DPCalendar will be shown as its own entity in your CalDAV client. The ability to use DPCalendar as a bridge to your other external calendars (Facebook events, CSV plugin, or all the others) is not yet implemented, although it is technically feasible and will be considered if enough people put it forward as a feature request. However, DPCalendar can act as both a CalDAV client and server at the same time.

So to what kind of uses can you put DPCalendar’s support of CalDAV? The simplest use would be to use your Joomla site as an aggregator of everyone’s schedules; for example, if you want to plan a family dinner, you can simply link to all your relatives’ calendars, and immediately everyone who has access to your website can see who is free and when. For business purposes, you can also use CalDAV to subscribe to calendar feeds that include public holidays for various countries, so that your clients can see when your offices are likely to be open.

You see, there are no limitations? Almost everything is possible, connect DPCalendar to your CalDAV based cloud service or offer your own cloud service for events based on DPCalendar!

dpcalendar 5 1

After the success of the major version 5.0 of DPCalendar, we made DPCalendar 5.1 available to the public as FREE or paid version. To figure out whet is the different between the different packages check out the comparison table. We fixed over 10 bugs and added over 20 new features and enhancements to DPCalendar 5.1. Some of the highlights are:

Location cache improvements

For external events, DPCalendar caches the locations now in the database and not anymore in the Joomla cache. This means, if there is something wrong with a location in an external event like from your Google calendar, then you can edit the location in the DPCalendar location administrator to the correct settings. This reduces also the load of Google maps API calls as with the Joomla cache, where the locations have been be re-fetched every two days.

Various attendee improvements

As there are more and more new feature request for the attending part of DPCalendar, we are constantly improving it. MS Exchange and iCalendar attendees are now displayed in the event details view. To get more information about the attendee itself, native DPCalendar attendees do support new location fields like country or street. When a visitor is attending an event, she/he can fill it's address information to beside the already available fields E-Mail and telephone number.

Improved structured data markup

DPCalendar supports structured data out of the box. We made the generated tags 100% W3C valid and improved the markup for better visualization on the SERP's.

MS Exchange integration improvements

As we already mentioned, MS Exchange attendees are now displayed in the event details page. Additionally inline images and event attachments are now available within DPCalendar as well from your corporate MS Exchange server or Outlook 365 account.

Many small improvements

Some small improvements were made all over DPCalendar you would like. For example when you change the start date of an event, the end data adapts itself to the increment automatically. Or the CalDAV link is displayed beside the iCal link for easier subscription. It is also possible to filter events for tags or locations in the calendar view. This are only some of the enhancements in this new version.

The following list represents the full changelog of version 5.1:

  • [#36]   Choice of calendars is not saved on page reload
  • [#42]   Flexible hour subperiods
  • [#159]   Attendees in Exchange plugin
  • [#949]   DPCalendar and Falang
  • [#1408]   RSEvents Pro plugin
  • [#2062]   Filter by Location
  • [#2555]   Filter by tag
  • [#2511]   Link to author contact page
  • [#2594]   Add address to attendee form
  • [#2402]   Support of attendees in ical
  • [#1065]   Update mail when changing the attendee
  • [#1215]   Display returns to current month after submitting new entry
  • [#2117]   Embedded Images and attachments are not loaded in Exchange Sync
  • [#2307]   Update Google library to prevent class loading conflicts
  • [#2326]   Creating location objects in database instead of Joomla cache
  • [#2343]   Increment end date on start change
  • [#2492]   Mini module include personal calendar/events
  • [#2514]   Upcoming event module description text not showing
  • [#2579]   Show CalDav Link in Calendar Overview
  • [#2582]   Invalid microdata markup
  • [#2583]   Change datestring in layout override
  • [#2562]   Bug in search for original events in backend
  • [#2512]   System message pushed away
  • [#2523]   List print view doesn't load events
  • [#2527]   Location tab cannot be selected on the edit form
  • [#2543]   Importing from JEvents results in an error
  • [#2578]   TZ switcher wrong redirect when no SEF
  • [#2585]   Upcoming module showing events not yet reached publishing date
  • [#2595]   Missing space in US location format

Best Regards

Allon Moritz aka laoneo
Founder of Digital Peak

webdav clients

In my previous post, I outlined some extensions to HTTP, the core protocol over which all of the World Wide Web – including the Joomla! CMS – operates. We’ve taken a brief overview of WebDAV, CalDAV, and CardDAV; their intended purposes, the features they present, and some of the real world areas in which they come in handy.

So how does one start using WebDAV or CalDAV? Riding on top of HTTP as both protocols do, they inherit the client-server architecture of HTTP; hence, both client and server applications are necessary to make it work. For WebDAV, clients are already built into most modern desktop OSes; Windows, OSX and Linux natively treat WebDAV shares as network drives/locations.

Additionally, the OSes mentioned previously, as well as both iOS and Android, have WebDAV clients available for download from their respective app libraries. WebDAV servers (e.g. IIS, Apache) and 3rd-party services (e.g. StorageMadeEasy) are also widely available for most modern desktop and mobile OSes. It is also possible to implement WebDAV functionality into a CMS like Joomla (and, in fact, has been done more than once), so it’s quite versatile.

Whether using WebDAV via a native client or via a 3rd-party application, it is always good to check and see whether both the WebDAV client and the server support HTTPS, or secure HTTP. You will be logging in to the WebDAV server using a standard username/password combination, so secure access will be a priority – especially if you are using WebDAV for collaboration on any sensitive work.

Further, WebDAV usually operates over the standard HTTP ports (80 for standard HTTP, 443 for HTTPS), unless the server was configured differently. If you are operating your own WebDAV installation for access to your private files, you might want to consider changing the default ports as well, to further increase security.

For CalDAV (and by extension, CardDAV), the situation is slightly more interesting. On Linux, both client (e.g. Mozilla Thunderbird) and server (e.g. Apache with mod_caldav) applications are readily available. While Apple’s iCal app natively supports CalDAV, Android’s Calendar app does not; you will have to download a CalDAV app from an app store. In addition, neither Windows Live Mail nor Microsoft Outlook supports CalDAV, either as a client or as a server; and getting CalDAV support without paying for it is no easy task. Luckily, other FOSS calendaring software for Windows that support CalDAV do exist. On Windows Phone, both CalDAV and CardDAV are supported for certain specific services, and others can be added.

technical caldav

In the second article of this series, I've written about how you can start using and deploying the WebDAV (and CalDAV/CardDAV) on your own systems, whether at the OS level, or at the CMS level (which Joomla! and Drupal, for instance, are capable of). In this post, let’s take a look at the technical aspects of the various extensions to HTTP; what their pros and cons are, and how you can use them at their best.

The first thing to understand is that from a technical perspective, WebDAV and all its derivative protocols are not APIs. That is to say, they do not specify how the protocols are implemented at the application level; merely how messages sent across the ‘wire’ (the Internet, in this case) are defined. The task of implementing a protocol, therefore, is comparatively simple, and it implies that any WebDAV client should be able to inter operate with any WebDAV server, regardless of platform (so a Joomla WebDAV client can exchange messages with a Microsoft IIS WebDAV server).

Unlike its own extensions CalDAV and CardDAV, WebDAV does not specify any specific format for the content that is transmitted across using the protocol. For CardDAV, the calendaring and scheduling information is required to be in the iCalendar format, while for CardDAV, contact details are required to be in the vCard format. This greatly simplifies the task of interpreting the information being received over the two protocols.

Like most other Internet application protocols (and their ‘parent’ protocol HTTP), WebDAV, CalDAV and CardDAV are all text-based. What this means is that all the commands and server responses are specified using text, rather than binary code. This is very much in line with the UNIX philosophy of keeping things text-based as much as possible (not surprising, seeing that the Internet uses the UNIX networking protocols TCP/IP), and means that most text-based tools can be used to work with WebDAV and its extensions, and any session logs would be human-readable.

This does not, however, mean that (like email) binary data has to be encoded in a text format. Because HTTP, the parent protocol, supports the direct transfer of binary data from server to client, WebDAV, CalDAV and CardDAV also supports the same – although in the case of CardDAV, since the underlying vCard format only supports binary data in the form of Base64-encoded text, it’s not very relevant. Similarly with CalDAV, where the iCalendar format also only supports the same thing. However, since WebDAV is often used as a network file system (what would today be called cloud storage), it fully uses HTTP’s ability to send and receive binary data.

caldav connect

Network protocols are used to transfer data between potentially different computer architectures. They describe and standardise the format in which the data is transferred. On the Internet, several major protocols include the File Transfer Protocol (FTP) used in transferring files, Simple Mail Transport Protocol (SMTP) used in sending emails to the email server for transmission, and Internet Message Access Protocol (IMAP) for retrieving emails from the email server.

And then there’s the HyperText Transfer Protocol (HTTP) – and its secure variant HTTPS – which is the underpinning of the modern Web. From the simplest website to the most complicated Web application and even Joomla! itself, the underlying protocol used to transfer all that data is HTTP. Its versatility is quite ubiquitous yet extensible, and over the years, a number of protocol extensions have emerged.

WebDAV, or Web-based Distributed Authoring and Versioning, is one of those extensions. Originally designed to enable multiple people to collaborate on a single website (hence the ‘distributed authoring’ part), WebDAV has since become so much more. Indeed, one of the most popular uses for WebDAV is to support filesystem operations over HTTP; a classic example of which would be connecting to a cloud storage service and making it appear as a standard network drive/folder.

WebDAV is itself extensible (its versioning capabilities are implemented in an extension), and its collaborative features make it perfect for other purposes which require coordination, such as scheduling. This is where CalDAV comes in. Short for ‘Calendaring Extensions to WebDAV’, CalDAV allows multiple users (or multiple devices of a single user) to share the same calendar; changes made on one device or by one user will be reflected across all of them.

All of the DAV protocols are open standards (and are detailed in various RFCs), which means anybody can use them and write software that implements them. Today, most open methods of synchronising files and folders rely on WebDAV; similarly, open online calendaring systems also use CalDAV for synchronisation. Another WebDAV extension, CardDAV, is used to synchronise address book contact information using the vCard format, enabling a full PIM experience with software that supports both CalDAV and CardDAV.

But WebDAV and CalDAV can do so much more than sync. Collaborative features in both protocols enable you to connect multiple users to a shared workspace, plan meetings, share information and resources globally, and in general, act as a single team regardless of wherever you are in the world.

But how does one go about using WebDAV and CalDAV (or, for that matter, CardDAV)? That will be explored in an upcoming post.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.