UPDATE: THIS ADDON IS NO LONGER BEING MAINTAINED. FEEL FREE TO DOWNLOAD AND PLAY WITH IT, BUT DO SO REALIZING THAT NO SUPPORT WILL BE PROVIDED.
V.3 has been uploaded and can be configured to successfully work, but takes a bit more manual effort than before. See 'Documentation' to be pointed in the right direction.
Note: My example site is offline.
Already have a Google Calendar or two that you use? Don't want to have to manage yet another calendar for your website? Want your client to be able to manage their own calendar events without having access to Concrete5? Or perhaps you have several groups in your organization that need calendar services but you don't want them all playing with the corporate/organization website? GCalendar viewer may be what you are looking for!
GCalendar Viewer is a Concrete5 Addon that allows you to add Google Calendar XML feeds to your website. More than one Google Calendar feed can be pulled into a single instance of the GCalendar Viewer allowing you to aggregate events from multiple calendars into a single calendar interface. This can be handy, for instance, if you have multiple departments in your organization each with a separate Google Calendar and you want to display them together on an intranet.
1.3 - Fixes broken Google Calendar feeds (Google discontinued their v1 API, this update adds support for the current Google v3 API). Replaces manual copy/paste of private calendar urls with selection from a list of automatically retrieved calendar feeds. Requires some configuration on Googles end to work with the new V3 API. Removes old Zend library. Adds newer Google API PHP Client library (https://github.com/google/google-api-php-client)
22.214.171.124 - Added fix for date end bug. Reverted a change from 126.96.36.199 because of a bug in C5 (addFooterItem is not working when adding a block so switched back to addHeaderItem)
188.8.131.52 - Updated the FancyBox plugin to the latest 1.x version. FancyBox 2.0 integrated will not be coming as the license for 2.0 has changed.
184.108.40.206 - Fixed a bug in Agenda mode that displayed incorrect days for multi-day events for all of the days except for the first
220.127.116.11 - Fixed a bug in Agenda mode that grouped events from multiple months under the same date for the first month. Fixed a bug in the Agenda mode that loaded two batches of events when pre-load was not selected. Fixed a bug with the scrollbar not working with a scroll wheel.
18.104.22.168 - Tentative 5.5 support. Updated to support APP_TIMEZONE setting in config/site.php. Removed error alert box that pops up if page navigation is changed before calendar data loads.
22.214.171.124 - Agenda mode bug fixes - added error checking for zero returned events.
126.96.36.199 - Bug fixes.
1.2.1 - Minor bug fixes. Updated Zend Gdata library version.
1.2.0 - NOW AVAILABLE! This version includes the much requested Agenda mode! Keeping in line with the simplicity of the rest of the addon, the Agenda mode loads a month of events at a time and automatically loads a new set of events when the last of the loaded events comes into view. Please let me know if you run across any interesting behaviour!
1.1.0 - Added a new 'Day' view to show only a single day's events starting with today. Fixed a bug where multi-day events spanning multiple months did not display correctly.
1.0.4 - Tweaks to IE7 compatibility. Added ability to reset month view to current month by clicking on month name.
1.0.3 - Added preliminary IE7 support. Please try it out and let me know if you come across any weird behaviour! WARNING: A lot of CSS was re-written, so if you have been relying on the old css underneath your own custom CSS, you may notice some differences with this release.
GCalendar Viewer uses the GData Zend Framework, which requires a minimum version of PHP 5.2.4.
Please make sure your PHP install includes the 'iconv' extension as it is needed by the Zend library used to pull events from Google Calendar.
Seems Windows doesn't like the way Zend includes files and so the plugin might throw an error when run in a Windows environment. See this post to make Windows happy again.
GCalendar Viewer defaults to Eastern timezone (i.e. New York, Toronto etc.). To change this timezone, set Concrete5's timezone as in this post: https://marketplace.concretecms.com/community/forums/customizing_c5/memo-how-to-change-the-timezone-on-your-concrete5-site/
A Couple Highlights
Supported View Modes
Mini-Month: Displays a month calendar highlighting any days that contain events. Clicking a day containing an event pops up a list of events and clicking on any displayed event will open the event details in a lightbox overlay.
Week: Displays a 'week-at-a-glance' calendar showing the current day's events and allowing a user to click on any of the days of the current week to view the rest of the weeks events. Clicking on the date bar with the mini calendar icon will pop up a month view allowing navigation to weeks beyond the current week.
Day: Displays a single day view showing events for only the current day. Clicking on the date bar with the mini calendar icon will pop up a month view allowing navigation to days beyond the current day.
Agenda: Displays an list of events sorted by date. The agenda vmode loads a month of events at a time and automatically loads a new set of events when the last of the loaded events comes into view.
The process of pulling events from Google Calendar for multiple calendar feeds can take a few extra seconds than a user might be interested in waiting, so GCalendar Viewer makes use of Concrete5's caching abilities to cache events for users browsing the site meaning that events will load quite quickly for the default date range and any date ranges already browsed to by other users.
The cache is set to expire once a day to allow for calendar edits to 'go live' the next day. The cache is only used for non-registered users (a.k.a. users not logged in) and will pull directly from Google Calendar for any users viewing the GCalendar instance while logged in allowing editors to preview newly added events before they 'go live' the next day.
If an editor determines that they would like their Google Calendar edits to go live sooner than the next day, they can easily clear Concrete5's global cache. I do plan on adding a feature to clear the cache specific to the GCalendar Viewer in the future if the demand is there.
In Context Event Details
GCalendar Viewer is an integrated events viewer meaning that it is not necessary to navigate away from the current page in order to view an event's details. When a user clicks on an event in a GCalendar instance to view the details of the event, GCalendar pops up the event details as an overlay on top of the current webpage.