• Cache Settings

    What is a Cache?

    A cache is a method of storing previously retrieved information for a certain amount of time temporarily. For DPCalendar, when the first user requests a Joomla page with a DPCalendar (or plugin) on it, the data is retrieved from the database or calendar source. This takes time. Time to retrieve and process the information. When a second user requests the same page and the cache is enabled, the information is pulled from the cache (memory) instead of the original source. This is faster and uses less server resources. However, the information will be minutes old. For most users the delay is not noticed. If you are responsible to update the calendar, you might not see the update for several minutes after you made the change. This may upset some users that want to see their changes immediately. Turning off the cache will show changes more quickly but can slow your site down considerably.

    Joomla has a caching system as does DPCalendar and other extensions, they will be explained more deeply in the next chapters.

    Joomla Cache

    The best cache option for your site is the cache plugin, which caches the whole page. Means that no PHP code is executed at all, will relax your server and deliver the pages faster.

    You may find Joomla's cache settings in the Global Configuration > System tab.


    Off - Caching Disabled
    On - Conservative Caching
    On - Progressive Caching

    No caching
    Some caching
    Most caching

    Cache Handler File
    Alternative PHP Caching
    Data saved as a file on your server
    Data saved as per your PHP settings
    Cache Time 15 (minutes or 900 seconds) Longer times = faster site and less up to date

    For more information see this article from Joomla -

    DPCalendar external events plugin cache

    Every plugin which integrates external events into DPCalendar has options to choose a cache behavior to temporary save the external events on the Joomla site and to increase/decrease the cache time. You can even turn off the cache completely in the plugin settings.

    Joomla cache

    The Joomla cache option caches the events in a file in the cache folder within your Joomla installation. The time settings defines the lifespan of the cached files before the events are refetched from the remote system. This behavior is used since the beginning of DPCalendar and is the most stable option.

    Database cache

    In DPCalendar 5.2 the Database cache option was introduced to have the the full power of database operations on external events. This options is properly tested but has still issues when not used together with a cron job as it fetches all the events for a timespan and updates the database. It's the option to use when you are an experienced server administrator as you need to set up a cron job and adjust probably some PHP settings in an ini file. The following list shows the most important ones:

    • memory_limit
      Set it to a high value like 128M. If you still get memory errors, increase it till they stop.
    • max_execution_time
      Set it to 0 to disable max execution time on CLI tasks.

    It is very much recommended to set up a cron job when database caching is enabled, which syncs the events completely in the background. Like that the visitor will never suffer from events sync during a page load. DPCalendar comes with a script which can be run on the command line and as cron job. It can be found in the folder /administrator/components/com_dpcalendar/cli and has the name eventsync.php.

    The following line can be copied into the crontab file to set up a cron job. Keep in mind that you need to properly set the cron execution time. For example if your cache time is 15 minutes, then you should run the cron job every 14 minutes like that the sync is always done on the command line.

    */14 * * * * /{my-path-php-executable}/php /{{joomla-root}}/administrator/components/com_dpcalendar/cli/eventsync.php

    The database cache works the way that it fetches per default the last three years and the next three years of events. One year at a time and adds the events into the database. These settings can be controlled in the plugin parameters when database caching is enabled. If you have a lot of events, then it is recommended to lower the sync step value. It is done that way as incremental sync is not supported by every plugin and the initial sync will explode your database on large calendars.

    Plugin cache comparison

    The following list shows which plugin does support which cache option.

    Plugin Joomla Cache Database Cache
    DPCalendar - Ical
    DPCalendar - Google
    DPCalendar - JCalPro
    DPCalendar - JEvents
    DPCalendar - RSevents Pro
    DPCalendar - Twitter
    DPCalendar - Jomsocial
    DPCalendar - Facebook
    DPCalendar - CSV
    DPCalendar - CalDAV
    DPCalendar - Meetup
    DPCalendar - Twitter
    DPCalendar - Exchange
    DPCalendar - SQL
    System - DPCalendar

    Location Cache

    When a location for a string is requested, during external event sync, then the location is stored in the database and is available for edit in the DPCalendar back end's Location Manager. If something is wrong with a location it can easily be corrected. If you want to refetch the locations, just delete them and on the next external event sync, they will be recreated.

  • CalDAV plugin


    The CalDAV plugin integrates events from any CalDAV server like iCloud or ownCloud into DPCalendar. The only settings you need are host, username and password and the events will be synced in two way mode. If the user has write permissions the CalDAV plugin allows to manipulate the events directly within DPCalendar. This means all the actions you know like drag'n drop or the nice looking responsive edit form from DPCalendar are available for your CalDAV events as well.

    The host parameter must be an url which directly points to a CalDAV endpoint like Additionally the calendar parameter must be an existing calendar where the user needs to have at least read permission, on our demo site an existing calendar is private-calendar. The easiest way is to import the calendars from yur CalDAV server. To do so click on the import button in the plugin edit form.

    Notes for iCloud integration

    This plugin allows the Front end of DPCalendar to reflect events in an iCloud hosted calendar. It is possible in the front end to modify events. This will be synchronized back to the iCloud calendar. In order for this plug-in to work, you need a public calendar in iCloud & some identification data for your iCloud calendar.

    Sharing the iCloud calendar:
    You will need to make the calendar in iCloud “shared” by clicking the curly brackets to the right of the calendar.
    Note at the same time the iCloud server in the link to the public calendar by clicking “public” . This will bring up a link which will look something like this: webcal:// On the import page of the CalDAV plugin you can define as host and your iCloud username and password.

    If you have enabled two factor authentication on your iCloud account or want to protect your password, your can create an app specific password which is different from your iCloud passord. More information can be found here

    As of June 15. 2017, the app specific password is mandatory!

    CalDAV server urls

    The following list shows host urls to import the calendars from.








    Calendar Options

    These settings are the same for every calendar configured in the plugin.

    Host [Type: Text]
    The host of the CalDAV server. For example represents the DPCalendar access point. If you want to fetch your calendars from icloud then use
    Username [Type: Text]
    The CalDAV username.
    Password [Type: Password]
    The CalDAV password.
    Calendar Url [Type: Text]
    The URL of the calendar (e.g. private-calendar).

    Plugin Options

    Caching [Type: List] [Default: Joomla]
    Select whether to cache the calendar data.
    The following options are available:
    1. Joomla
    2. Database
    3. Never
    Cache Time [Type: Text] [Default: 900]
    The time for the cache in sec.
    Sync Start [Type: Text] [Default: -3 year]
    The relative start date to sync from.
    Sync End [Type: Text] [Default: +3 year]
    The relative end date to sync from.
    Sync Steps [Type: Text] [Default: 1 year]
    The sync steps.
  • Calendar not always Responsive

    When opening the Calender when holding my tablet in portet the calender is disfigured.
    when turning tablet to landscape calender shows normal.



  • Can't update to 3.3 from 3.2


    We have a website still in development located at We've been trying to update to 3.3 but when looking at DPCal via backend it tells us it's fully updated at 3.2.3. We have then tried to install the 3.3.0 and 3.3.1 packs from the website via extension manager, both of which come up with the same error. "An error has occurred. -1 copy file failed"

    Any ideas why it's not displaying the 3.3 version or why we can't upload the new package?

    TIA for your help,


  • Counter Module Output Editing

    Counter Module Output Editing

    The best method for editing the event output is to use template overrides.  Please watch this YouTube video on the steps necessary to create and edit a script:

    The links below are written steps to create a template override:

    Editing the script

    Edit between the {{#event}} and {{/event}} codes in the file.

    The codes used for editing can be found in the event output mustache codes -

    The default code is below.

    <span class="countdown_row">{y<}<span class="countdown_section"><span
    		class="countdown_amount">{yn}</span><br />{yl}</span>{y>}{o<}<span
    	class="countdown_section"><span class="countdown_amount">{on}</span><br />{ol}</span>{o>}{w<}<span
    	class="countdown_section"><span class="countdown_amount">{wn}</span><br />{wl}</span>{w>}{d<}<span
    	class="countdown_section"><span class="countdown_amount">{dn}</span><br />{dl}</span>{d>}{h<}<span
    	class="countdown_section"><span class="countdown_amount">{hn}</span><br />{hl}</span>{h>}{m<}<span
    	class="countdown_section"><span class="countdown_amount">{mn}</span><br />{ml}</span>{m>}{s<}<span
    	class="countdown_section"><span class="countdown_amount">{sn}</span><br />{sl}</span>{s>}
    	<div style="clear: both">
    			<a href="/{{{backLink}}}">{{title}}</a><br />{{{description}}}

    To change the time and date formatting edit these two lines using the formats from

    $tmp->set('event_date_format', $params->get('date_format', 'm.d.Y'));
    $tmp->set('event_time_format', $params->get('time_format', 'g:i a'));


  • CSV plugin


    The CSV plugin creates out of a CSV file, events which can be displayed in DPCalendar. The file can be locally on your web server it can be a link to a website that automatically produces the proper formatted output.

    If the file is on your server it must have proper permissions to access it. Make sure that the file is accessible to DPCalendar through your Joomla hosting server. If the file is not physically on your server you can define an url like To get remote files the server must be able to open connections to the remote server. Ask your hosting company first if outbound connections are included in your hosting plan.

    File Format

    The CSV plugin comes with an example file which has a structure that works out of the box. For every CSV calendar you can define a column name which is mapped to an event attribute. For example if the title of the event is in a column with the name csv_title then fill that value as option in the external calendar configuration.

    The following example should give you a rough idea about the structure. The first row defines always the columns of the file.

    "Yearly","yearly","FREQ=YEARLY;UNTIL=20200514T000000Z","2007-05-23 14:12:35","2007-05-23 14:22:35","0",,"27CC37",,"Sample description"
    "single event","single-event",,"2007-05-29 22:00:00","2007-05-29 22:20:00","0",,"A32929",,
    "All day event","allday",,"2007-05-29 00:00:00","2007-05-30 00:00:00","1",,"A32929",,
    "Weekly Demo Events","weekly","FREQ=WEEKLY;BYDAY=TU,TH,SA;COUNT=1000","2014-04-10 20:00:00","2007-07-10 22:30:00","0","New York",,"","<p>Desc</p><ul><li>with HTML</li><li>content</li></ul><p><strong>Strong text</strong></p>"
    "Daily event","daily","FREQ=DAILY","2007-07-10 20:00:00","2007-07-11 01:30:00","0","London",,"","<p>Desc</p><ul><li>with HTML</li><li>content</li></ul><p><strong>Strong text</strong></p>"

    Libre Office, Openoffice or Excel

    CSV files are easier to work with using Excel or Libre Office spreadsheets. In either case the file will be broken down into cells. Make sure to always save the file as a CSV (comma separated values) file. Not as a spreadsheet, xlsx or ods, file. These are binary files and can't be read by PHP.

    Calendar Options

    These settings are the same for every calendar configured in the plugin.

    Uri [Type: Text]
    An uri to a file for example or plugins/dpcalendar/dpcalendar_ical/examples/calendar.ics. If the uri is a file and starts with a '/' DPCalendar will interprete it as an absolute path otherwise relative to the joomla installation folder.
    Delimiter [Type: Text] [Default: ,]
    The delimiter of the CSV file.
    Enclosure [Type: Text] [Default: "]
    The enclosure of the CSV file.
    Has Header Row [Type: Radio] [Default: Yes]
    Does the CSV file has a header row.
    The following options are available:
    1. Yes
    2. No
    Start Date Column [Type: Text] [Default: start_date]
    The column for the start date.
    End Date Column [Type: Text] [Default: end_date]
    The column for the end date.
    All Day Column [Type: Text] [Default: all_day]
    The column for the all day.
    Title Column [Type: Text] [Default: title]
    The column for the title.
    Description Column [Type: Text] [Default: description]
    The column for the description.
    RRule Column [Type: Text] [Default: rrule]
    The column for the recurrence rule.
    Location Column [Type: Text] [Default: location]
    The column for the location.
    Url Column [Type: Text] [Default: url]
    The column for the url.
    Alias Column [Type: Text] [Default: alias]
    The column for the alias.
    Colour Column [Type: Text] [Default: color]
    The column for the colour.

    Plugin Options

    Caching [Type: List] [Default: Joomla]
    Select whether to cache the calendar data.
    The following options are available:
    1. Joomla
    2. Database
    3. Never
    Cache Time [Type: Text] [Default: 900]
    The time for the cache in sec.
    Sync Start [Type: Text] [Default: -3 year]
    The relative start date to sync from.
    Sync End [Type: Text] [Default: +3 year]
    The relative end date to sync from.
    Sync Steps [Type: Text] [Default: 1 year]
    The sync steps.
  • Date Format (EU) in new Event Pop up


    Can you please advise how can i change the date format in the POP UP module to add a new event. I would like the date format DD MM YY. I have changed the date formats using the PHP syntax in the Options and even in the menu item. However, the date on the pop up module remained with MM DD YY.


  • Disappointed

    On the advice I have, after finishing CGCalendar, bought the DPCalendar Professional.

    The free version of the CGCalendar worked perfectly but that seems the DPCalendar Professional not to be. I do not want to change templates or change PHP settings. I just want to integrate my Google calendar in DPCalendar. That's all. Waste of money and my question is how I can receive my money back.

  • DPCalendar Missing CSS

    Hi, I can get the calendar looking fine with a default Joomla template (Prostar) but I'm struggling to get it look right with my own template.

    I've cross-referenced the code between the two temapltes and it looks like DPC is missing some CSS as using the Prostar template CSS fixes most of my issues but obviously I don't want to go through that line by line to see with my template and DPC are missing.

    If I disable all my own custom CSS and jQuery its still doesn't work so I can rule that out.

    Any pointers would be great,

    EIDT: The feautes I can see arn't working are the popup (CSS) and the tooltips (CSS)


  • Edit display of iCal download

    I would like to display the link to download the iCal formatted calendar in a more obvious place -- right now, the only way to get to it is to toggle that little blue triangle above the month title in the month-display. Is there a way to display that elsewhere?

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.