What does it do? 

  • This extension includes the jQuery Plugin FullCalendar , which generates a skinable Calendar with different views (month, week, day, week list, day list) from Google Calendar XML Feed(s).
  • It uses Extbase and Fluid and needs at least TYPO3 8.7.8 (<= v4.9.1) or 9.5.0 (>= v4.10.0)
  • The extension is localized in english and german. Contact me, if you would like to add your language.
  • For examples of the different views visit http://fullcalendar.io

Screenshots 

Thanks To 

  • Adam Shaw for this amazing jQuery Plugin
  • Helge Sascha Anders Koziele for sponsoring Google API 3 Update
  • Fred Hartmann und Tobias Döring GbR for sponsoring Google API 3 Update
  • m|r|o|net - Internetsolutions for sponsoring Google API 3 Update
  • Evang.-Luth. Pfarramt St. Johannes Gilching-Weßling for sponsoring Google API 3 Update

Users manual 

  • Install the extension from the TYPO3 Extension Repository or composer (package name: mediaessenz/me-google-calendar)
  • Go to your root or add an extended template and include the static template "Google Calendar (me_google_calendar)"
  • Generate a google calendar record in a sysfolder of our choice (e.g. general storage) and fill in the fields.

    • Set restrictions of a feed to a specific feuser group using the access tab. Be aware: since the google calender feed needs to be public, this is not really save! Anyone who knows the public google calendar url (starts with https://calendar.google.com/calendar/embed?src=) can see your datas.

Get the needed google calendar api key 

To enable the plugin to read the calendar data from google a Google Calendar API key is required. The following description can be slightly differ from the actual procedure.

  • Go to the Google Developer Console (https://console.developers.google.com/ ) and create a new project (it takes only some seconds).
  • Once in the project, go to APIs & auth > APIs on the sidebar.
  • Find "Calendar API" in the list and turn it ON.
  • On the sidebar, click APIs & auth > Credentials.
  • In the "Public API access" section, click "Create new Key".
  • Choose "Browser key".
  • If you know what domains will host your calendar, enter them into the box. Otherwise, leave it blank. You can always change it later.
  • Your new API key will appear. It might take second or two before it starts working.

Prepare your Google Calendar for access and get the needed calendar-id 

  • In the Google Calendar interface, locate the "My calendars" area on the left.
  • Hover over the calendar you need and click on the appearing three vertical dots.

  • Click on "Settings & Sharing"
  • Under "access permissions" check "Make public"
  • Go to "Calendar integrate" section of the same screen, and notice the needed calendar-id (it looks like "niqg76gl1uu5uv6dd4dleo536c@group.calendar.google.com").

Define the style of your calendar 

Depending of the restrictToPredefinedCssClasses-setting (see Configuration > Extension Manager) you can enter a css class name (without dot) or select from a list of predefined styles (see Configuration > Examples for how to add more items).

The predefined stylesheet definitions are:

  • fc-red
  • fc-green
  • fc-blue
  • fc-grey
  • fc-orange
  • fc-purple

If you like to show all events from a calendar e.g. in red, just enter the predefined CSS Class “fc-red” to the "Css" field.

If restrictToPredefinedCssClasses (available over the extension manager settings of me_google_calendar) is set to 1 (true), the "Css" input field changes to a "Style" select field. In this case you can only select from a specific list of styles (Red, Green, Blue, Grey, Orange and Purple). This list is also expandable using page typoscript.

For more info about extending css/styles go to "Configuration > Examples" of this manual.

Add a Google Calendar plugin to a page 

  • Finally add a “General Plugin” on a page of your choice and select “Calendar” under the “Plugin” tab
  • Configure the output as you need
  • More configuration can be done globally by using the constant editor. See section "Configuration > TypoScript Constants" for more info.

Support my work 

This plugin was created mostly in my free time, which is becoming more and more precious since I have a family. To keep it up for future TYPO3 and fullcalendar versions I really need your help!

  • If you like and use my extension, I'd appreciate a small donation: Flattr or PayPal
  • For a small monthly contribution, visit my PATREON page

THANK YOU in advance!

Extension Configuration 

restrictToPredefinedCssClasses

restrictToPredefinedCssClasses
type

boolean

Default

Restrict google calendar record css to predefined styles. See manual for more info

TypoScript 

plugin.tx_megooglecalendar.persistence 

storagePid

storagePid
type

string

Default

Empty

Path

plugin.tx_megooglecalendar.persistence.storagePid

Storage Pids separated by comma: Leave empty to ignore storage page.

recursive

recursive
type

number

Default
Path

plugin.tx_megooglecalendar.persistence.recursive

Recursive level: Only useful if storagePid is set.

plugin.tx_megooglecalendar.settings 

cssPath

cssPath
type

string

Default

EXT:me_google_calendar/Resources/Public/Css/main.css

Path

plugin.tx_megooglecalendar.settings.cssPath

If you want to customize the CSS File, define the path like: fileadmin/templates/css/styles.css. Leave empty to not include.

printCssPath

printCssPath
type

string

Default

EXT:me_google_calendar/Resources/Public/Css/fullcalendar.print.css

Path

plugin.tx_megooglecalendar.settings.printCssPath

Path to print css file.

cssThemePath

cssThemePath
type

string

Default

EXT:me_google_calendar/Resources/Public/JavaScript/jquery-ui/themes/smoothness/jquery-ui.min.css

Path

plugin.tx_megooglecalendar.settings.cssThemePath

Path to CSS theme file. Leave empty to not include.

cssThemePathExternal

cssThemePathExternal
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.cssThemePathExternal

Path to cssThemePath is external.

themeSystem

themeSystem
type

options

Default

standard

Path

plugin.tx_megooglecalendar.settings.themeSystem

Renders the calendar with a given theme system (standard, bootstrap3, jquery-ui. For more info see https://fullcalendar.io/docs/display/themeSystem/

hideHeader

hideHeader
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.hideHeader

Hide header content.

headerLeft

headerLeft
type

string

Default

prev,next today

Path

plugin.tx_megooglecalendar.settings.headerLeft

Left header content. Allowed values: prev, next, today, title, month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list. Use comma for separation and [Space] for distance.

headerCenter

headerCenter
type

string

Default

title

Path

plugin.tx_megooglecalendar.settings.headerCenter

Center header content. Allowed values: prev, next, today, title, month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list. Use comma for separation and [Space] for distance.

headerRight

headerRight
type

string

Default

month,agendaWeek,agendaDay

Path

plugin.tx_megooglecalendar.settings.headerRight

Right header content. Allowed values: prev, next, today, title, month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list. Use comma for separation and [Space] for distance.

hideFooter

hideFooter
type

boolean

Default

1

Path

plugin.tx_megooglecalendar.settings.hideFooter

Hide footer content

footerLeft

footerLeft
type

string

Default

prev,next today

Path

plugin.tx_megooglecalendar.settings.footerLeft

Left header content. Allowed values: prev, next, today, title, month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list. Use comma for separation and [Space] for distance.

footerCenter

footerCenter
type

string

Default

title

Path

plugin.tx_megooglecalendar.settings.footerCenter

Center footer content. Allowed values: prev, next, today, title, month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list. Use comma for separation and [Space] for distance.

footerRight

footerRight
type

string

Default

month,agendaWeek,agendaDay

Path

plugin.tx_megooglecalendar.settings.footerRight

Right header content. Allowed values: prev, next, today, title, month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list. Use comma for separation and [Space] for distance.

defaultView

defaultView
type

string

Default

AgendaWeek

Path

plugin.tx_megooglecalendar.settings.defaultView

Default view of the calendarAllowed values: month, agendaWeek, agendaDay, basicWeek, basicDay, listDay, listWeek, listMonth, listYear, list

allDaySlot

allDaySlot
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.allDaySlot

Show all day events slot in agenda views.

firstDay

firstDay
type

number

Default
Path

plugin.tx_megooglecalendar.settings.firstDay

First day of week. Can be 0 for sunday or 1 for monday.

weekends

weekends
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.weekends

Show weekends as well.

weekNumbers

weekNumbers
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.weekNumbers

Show week numbers.

weekNumbersWithinDays

weekNumbersWithinDays
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.weekNumbersWithinDays

Show week numbers within days.

weekNumberCalculation

weekNumberCalculation
type

string

Default

ISO

Path

plugin.tx_megooglecalendar.settings.weekNumberCalculation

Week number calculation.

minTime

minTime
type

string

Default

00:00:00

Path

plugin.tx_megooglecalendar.settings.minTime

Mix time for agenda views in format hh:mm:ss

maxTime

maxTime
type

string

Default

24:00:00

Path

plugin.tx_megooglecalendar.settings.maxTime

Max time for agenda views in format hh:mm:ss

scrollTime

scrollTime
type

string

Default

08:00:00

Path

plugin.tx_megooglecalendar.settings.scrollTime

Scroll to time in format hh:mm:ss

weekMode

weekMode
type

string

Default

variable

Path

plugin.tx_megooglecalendar.settings.weekMode

Defines the way week are shown in month. Can be 'fixed' or 'variable'.

hideTitle

hideTitle
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.hideTitle

Hide title content.

eventLimit

eventLimit
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.eventLimit

Show more events link, if they do not fit into time slot.

titleFormat.month

titleFormat.month
type

string

Default

MMMM YYYY

Path

plugin.tx_megooglecalendar.settings.titleFormat.month

Date format* for month title.

titleFormat.week

titleFormat.week
type

string

Default

MMM D YYYY

Path

plugin.tx_megooglecalendar.settings.titleFormat.week

Date format* for week title.

titleFormat.day

titleFormat.day
type

string

Default

MMMM D YYYY

Path

plugin.tx_megooglecalendar.settings.titleFormat.day

Date format* for day title.

columnFormat.month

columnFormat.month
type

string

Default

dddd

Path

plugin.tx_megooglecalendar.settings.columnFormat.month

Defines the column format* for the month view.

columnFormat.week

columnFormat.week
type

string

Default

ddd DD.MM.

Path

plugin.tx_megooglecalendar.settings.columnFormat.week

Defines the column format* for the week view.

columnFormat.day

columnFormat.day
type

string

Default

dddd DD.MM.

Path

plugin.tx_megooglecalendar.settings.columnFormat.day

Defines the column format* for the day view.

listDayFormat

listDayFormat
type

string

Default

DD. MMMM YYYY

Path

plugin.tx_megooglecalendar.settings.listDayFormat

Defines the left date format* for the list view.

listDayAltFormat

listDayAltFormat
type

string

Default

ddddd

Path

plugin.tx_megooglecalendar.settings.listDayAltFormat

Defines the right date format* for the list view.

timeFormat.agenda

timeFormat.agenda
type

string

Default

HH:mm

Path

plugin.tx_megooglecalendar.settings.timeFormat.agenda

Time format* for agenda view.

timeFormat.list

timeFormat.list
type

string

Default

HH:mm

Path

plugin.tx_megooglecalendar.settings.timeFormat.list

Time format* for list view.

timeFormat.day

timeFormat.day
type

string

Default

HH:mm

Path

plugin.tx_megooglecalendar.settings.timeFormat.day

Time format* for day view.

timeFormat.week

timeFormat.week
type

string

Default

HH:mm

Path

plugin.tx_megooglecalendar.settings.timeFormat.week

Time format* for week view.

timeFormat.month

timeFormat.month
type

string

Default

HH:mm

Path

plugin.tx_megooglecalendar.settings.timeFormat.month

Time format* for month view.

timeFormat.general

timeFormat.general
type

string

Default

HH:mm

Path

plugin.tx_megooglecalendar.settings.timeFormat.general

General time format*.

timeZone

timeZone
type

string

Default
 
Path

plugin.tx_megooglecalendar.settings.timeZone

e.g. Europe/Berlin. If empty (default) the timezone defined inside google UI will be used.

hideIcalDownloadButton

hideIcalDownloadButton
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.hideIcalDownloadButton

Hide ical download button in event details.

hideAddtoGoogleCalendarButton

hideAddtoGoogleCalendarButton
type

boolean

Default
Path

plugin.tx_megooglecalendar.settings.hideAddtoGoogleCalendarButton

Hide add to google calendar button.

height

height
type

integer

Default
Path

plugin.tx_megooglecalendar.settings.height

Height of calendar.

aspectRatio

aspectRatio
type

string

Default

1.35

Path

plugin.tx_megooglecalendar.settings.aspectRatio

Aspect ratio.

overrideFlexformSettingsIfEmpty

overrideFlexformSettingsIfEmpty
type

string

Default

cssThemePath, headerLeft, headerCenter, headerRight, footerLeft, footerCenter, footerRight, defaultView, allDaySlot, firstDay, firstHour, weekends, minTime, maxTime, hideTitle, hideIcalDownloadButton, hideAddtoGoogleCalendarButton, noGoogleMapsLink, height

Path

plugin.tx_megooglecalendar.settings.overrideFlexformSettingsIfEmpty

Override flexform setting if empty.

eIdGetIcsUrl

eIdGetIcsUrl
type

string

Default

/index.php?eID=meGoogleCalendarEidGetIcs

Path

plugin.tx_megooglecalendar.settings.eIdGetIcsUrl

eID Script URL for ics file generation.

language

language
type

string

Default

de

Path

plugin.tx_megooglecalendar.settings.language

Language key.

* For more infos about the time/date format, please read the documentation on the website of the FullCalendar plugin author:

https://fullcalendar.io/docs/date-library#formatdates

Examples 

TS Constants Example 

plugin.tx_megooglecalendar {
   settings {

      # change included jquery to a cdn version
      jQueryPath = //ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
      jQueryExternal = 1

      # switch from jquery-ui theme/dialog to bootstrap 3:
      themeSystem = bootstrap3
      jQueryUiPath =
      cssThemePath =

      # change min and max time
      minTime = 08:00:00
      maxTime = 18:00:00

      # set first day to monday
      firstDay = 1

   }
}
Copied!

CSS / Style Examples 

If you want to show all events from a calendar in red, just add the predefined CSS Class “fc-red” to the google calendar feed record field "Css".

There are six already predefined style definitions in the included main.css file:

fc-red, fc-green, fc-blue, fc-grey, fc-orange, fc-purple

You also can define your own colors by adding this css (example for “my-color-1”):

.fc-event.my-color-1,
.fc-agenda .fc-event.my-color-1 .fc-event-time,
.fc-event.my-color-1 .fc-event-inner.fc-event-skin,
.fc-list-item.my-color-1 .fc-event-dot,
.fc-event.my-color-1 a {
   background-color:#ff0000;
   border-color:#ff0000;
   color:#fff;
}
Copied!

If you want to restrict backend user to only selectable styles, you can set the flag "restrictToPredefinedCssClasses", which is available in the extension manager settings of me_google_calendar. If activated, the css input field inside the google calendar record changes to a select field containing only the predefined css styles.

If you want to extend the list or remove some items please use page typoscript.

The following example code removes all predefined styles and adds the above css example:

TCEFORM {
    tx_megooglecalendar_domain_model_calendar {
        css {
            removeItems = fc-red,fc-green,fc-blue,fc-grey,fc-orange,fc-purple
            addItems {
                my-color-1 = My Color 1
            }
        }
    }
}
Copied!

Known problems 

  • Sometimes, if you update from an earlier version, old flexform settings could result in unexpected results. Have a look at the famose extension "typo3_console" from helmut hummel to fix this problems by using the cli command "vendor/bin/typo3cms cleanup:flexforms". Another way is to open the plugin over the backend, clear the content of the database field pi_flexform of the corresponding tt_content record using e.g. PhpMyAdmin and press save inside the backend.
  • For other things please contact me

To-Do list 

  • Contact me :)
  • I'll work on the extension, as my time allows me...

ChangeLog 

  • v.0.1.0: Initial Upload
  • v.0.2.0: changed js configuration output generation from TS to PHP. Added flexforms for configuration possibility to show more than one google calendar by using db entries.
  • v.1.0.0: Made some improvements of the flexforms configuration. Added support for T3 jQuery extension. Added this manual.
  • v.1.0.1: Set status to stable
  • v.1.0.2: Update currupt manual. Added default timezone to new calendar feed entries. Some small bugfixes.
  • v.1.0.3: Added jQuery noConflict mode. Added jQuery path configuration.
  • v.1.0.4: Bugfix to work with CSS Styled Content <4.3. Manual Correction.
  • v.1.0.5: Update to newest version of fullCalendar script (1.4.4) and jQuery (1.4.1). Manual Correction.
  • v.1.0.6: Update to newest version of fullCalendar script (1.4.5) and jQuery (1.4.2).
  • v.1.0.7: Small bugfix for jQuery no conflict mode.
  • v.1.0.8: Update to newest version of fullCalendar script (1.4.6). Added jsMinify and jsToFooter option. Constants will grouped and ordered correctly now (Thanks to Jürgen Furrer!).Attention: Change Constants-Pre-var from plugin.megooglecalendar to plugin.tx_megooglecalendar_pi1. Please update your constants configuration!
  • v.1.0.9: Update to newest version of fullCalendar script (1.4.7) and jQuery UI (1.8.5). Small changes in configuration (jQueryUiPath replaces jQueryUICorePath, jQueryUiDraggablePath and jQueryUiResizablePath; Added jQueryPluginPath and gcalPath)
  • v.1.1.0: Added jQueryUI popup dialog for event details. Makes use of jQueryUI.dialog and jQueryUI.buttons now - so please check your jquery-ui-custom-theme-css-files for needed parts!
  • v.1.1.1: Added Buttons for iCal-File (.ics) Download and “Add to Google Calendar” in Event-Details. Added Link to Google Maps in Event- Details. Updated to newest version of fullCalendar script (1.4.8) and jQuery (1.4.3).
  • v.1.2.0: Update to newest version of fullCalendar script (1.4.9), jQuery (1.4.4) and jQuery UI (1.8.6). Added event detail tab in frontend plugin + option to switch off link to google maps. Bugfix for IE-problem in dynamic generated js-code (Thanks to Jesper Goos!).
  • v.1.3.0: Update to newest version of fullCalendar script (1.5.2), jQuery (1.6.2) and jQuery UI (1.8.16).
  • v.3.0.0: Completely rewritten in Extbase and Fluid. Uses fullCalendar script 1.5.4, jQuery 1.8.3, jQuery-UI 1.9.2
  • v.3.1.0: Update to newest version of fullCalendar script (2.0.2) and all needed libraries and stylesheets. Add constant “useCurl” (and function of course) to prevent google feeds (especially private one) are visible in source code.It is also now possible to restrict the access to a calendar feed only for logged in fe_users. Attention: Because of the update to fullCalendar 2, some time and date formats were changed! Especially the minTime, maxTime and scrollTime needs your attentions (e.g. a value “8” must be changed to “08:00:00”). Additionally the broken “Download iCal-File”-function has been fixed. Unfortunately google switched off there (undocumented) REST-service to generate them by adding some parameters to the single event url. The file is now generated by the extension itself.
  • v.3.2.0: Update to newest version of fullCalendar script (2.2.3), all needed libraries and stylesheets. Since Google switched off API V1 and V2 on Nov 17th 2014 a Google Calendar API key is now required. See manual for more info. Removed curl feature, since feeds can now be protected by google api settings. Add constant “eventLimit” to switch on/off a more events link, if number of events do not fit into a time slot. New Feed Icon.
  • v.3.3.0: Update to newest version of fullCalendar script (2.3.2), all needed libraries and stylesheets. Add time format constants for month, week, day view. Add timezone constant to set the timezone. Remove timezone from feed records, because it does not work since fullcalendar 2.2.x anymore. Timezone from Google UI is used instead.
  • v.3.4.0: TYPO3 7 LTS Compatibility Update. Changed vendor name from TYPO3 to MEDIAESSENZ.
  • v.4.0.0: Update to newest version of fullCalendar script (3.1.0), with several new list views (day, week, month, year). Add footer menu, week numbers and aspect ratio. Add bootstrap modal support. Add TYPO3 8 compatibility. Breaking changes: remove timeFormat.axis setting; new calendar record selection under general settings tab!
  • v.4.0.1: Fix version and requirements in composer.json
  • v.4.0.2: Fix Documentation
  • v.4.0.3: Fix missing images in documentation
  • v.4.0.4: Improve code example formating
  • v.4.0.5: Show event description only if available; use icon factory for calendar tca; small cleanups
  • v.4.1.0: Update fullcalendar plugin to version 3.2.0
  • v.4.2.0: Update fullcalendar plugin to version 3.3.1; Small adjustments for TYPO3 8.7
  • v.4.2.1: Add possibility to change label of list button
  • v.4.3.0: Update fullcalendar plugin to version 3.6.1; Add new "themeSystem" constant to switch between "standard" (default), "bootstrap3" and "jquery-ui" theme. Add and use minimized css/js versions by default; Remove old odt and pdf manual and compass stuff;
  • v.4.4.0: Update fullcalendar plugin to version 3.9.0 + jQuery to 3.3.1; Add bootstrap4 theme coming with fullcalendar (untested); Remove several not needed fields from plugin settings (code,layout,select_key,pages,recursive);

    Change storage page handling:

    • If calendar records selected in plugin, storage page is ignored completely;
    • If no calendar records selected and no storage page is defined over constants property plugin.tx_megooglecalendar.persistence.storagePid all calendar records will be considered;
    • If storagePid constant is set, only records from the defined pages (separated by comma) will be considered;
    • With the additional constant plugin.tx_megooglecalendar.persistence.recursive this happens recursive by the given depth;

    If you update from an older version of this extension, be sure to cleanup your flexform settings. Have a look at the famose extension "typo3_console" from helmut hummel to fix this problems by using the cli command "vendor/bin/typo3cms cleanup:flexforms"

  • v.4.5.0: Add TypoScript constants to change list view rows header and date format (listDayFormat, listDayAltFormat, timeFormat.list); Improve documentation;
  • v.4.6.0: Add extension manager setting restrictToPredefinedCssClasses to change the css text field inside calendars record to a selectable list of styles; Update manual and add code examples how to do this;
  • v.4.6.1: Fix typoscript example in manual;
  • v.4.6.2: Update this changelog
  • v.4.6.3: Add location and description in ical files only if defined; Improve format of ical description.
  • v.4.6.4: Fix problem with full day events
  • v.4.7.0: Update fullcalendar plugin to version 3.10.0 + jQuery to 3.4.1; Improve handling of all day(s) events; Move ical-link generation from gcal.js to eventDataTransform method defined inside settings partial;
  • v.4.7.1: Fix general labels under TYPO3 >= 8
  • v.4.8.0: Restructure manual to fit new documentation workflow; Drop TYPO3 6 and 7 support.
  • v.4.8.1: Add missing webhook to render manual
  • v.4.8.2: Add some more requirements to composer.json
  • v.4.8.3: Fix wrong version number in manual
  • v.4.8.4: Fix wrong extension key in composer.json
  • v.4.9.0: Fix wrong path to loading gif; Accessibility optimizations; Small changes in markup of modal to better work with bootstrap 4; Make code TYPO3 10 compatible, but not really tested yet;
  • v.4.9.1: Add missing renderType definitions in flexform;
  • v.4.10.0: Drop TYPO3 8.7 support, because of changed new domain model validation annotation format, required since v10; Move icon, inline help definition to there right place; Fix deprecated language label paths in TCA
  • v.4.11.0: Increase compatibility range to TYPO3 9-11; Cleanup composer.json
  • v.4.12.0: Update fullcalendar plugin to version 3.10.2 + jQuery to 3.5.1 which fixes a problem in agendaDay and agendaWeek view under jQuery 3.5.1
  • v.4.13.0: Make TYPO3 11 compatible + Cleanups
  • v.4.14.0: Add a workaround to make the calendar working with bootstrap 5 modals. To use it under bootstrap 5, it is recommended to set the TypoScript constant plugin.tx_megooglecalendar.settings.themeSystem to "standard", otherwise the generated calendar looks a bit ugly, because of the no more fitting css selectors.
  • v.5.0.0: Change namespace to MEDIAESSENZMeGoogleCalendar. Remove TYPO3 10 compatibility. Add TYPO3 12 compatibility. Replace ics eID script by middleware.
  • v.5.1.0: Change javascript embedding from TypoScript to asset viewhelpers inside Layouts/Default.html, due to massive changes in TypoScript parser. Configuration how to embbed the needed js code (also jQuery), its loading piority, using minified version or not and so on has to be done by overriding the extensions layout file!
  • v.5.2.0: Switch to phpDocumentor