Infiniroot Blog: We sometimes write, too.

Of course we cannot always share details about our work with customers, but nevertheless it is nice to show our technical achievements and share some solutions.

Mautic calendar not showing all events - how to fix the notes result limit

Published on May 26th 2021

For a customer of ours we needed to find and evaluate a CRM-like application used for customer acquisition and contact management. And as we Infiniroot engineers are specialized in using open source software for our solutions, we came across and installed Mautic.

After an initial training session to explain how to create contacts, assign contacts to companies, create events in the calendar, create segments and send targeted marketing e-mails to a segment, the customer started working with Mautic. With every day, Mautic was being used more and more. Until one day we received a support ticket that "events disappeared". 

Mautic calendar

The reason: 100 events only

The described problem, that "events disappear" could be reproduced. Whenever a new contact note with a date (= event) was created, it would not show up in Mautic's calendar. Existing events however continued to show up correctly - only newly created events would not show up. Tests showed that it didn't matter whether the new event was set in the past or in the future - they would simply not show up.

Using the browser console (debug tool) an interesting fact was found on the AJAX request on the calendar (GET ajax?action=calendar): The JSON output from the HTTP response contained exactly 100 entries (starting with an array index at 0): 

AJAX request to Mautic calendar only shows 100 entries

Meaning: The calendar would simply load the first 100 events - no more. No wonder new events would not show up in the calendar.

How to find and increase this limit?

Of course the initial thought was: Where is this limit setting? However in the Mautic UI settings, no such calendar event limit could be found. Instead the limit was found hard-coded into the Mautic application code (app/bundles/LeadBundle/EventListener/CalendarSubscriber.php):

Mautic calendar MaxResults set to 100

Here a limit is defined by setting setMaxResults(100). 

By increasing this limit to a higher value (e.g. 1000) the number of JSON entries in the HTTP response increased and the missing events were now finally showing up in the calendar:

AJAX request to Mautic calendar now shows more results

Contributing a workaround

Because we use open source software for our solutions, we also know that there is a concept of give and take in the OSS world. We've shared our solution with the Mautic community and created a Pull Request on their official repositories, currently awaiting a review. It's important to note however that we consider this "quick fix" a workaround, not a real solution. A real solution would (probably) mean to create a calendar specific settings section in the UI where the event result limit can be defined.