I’m experiencing an issue where events added directly to our Main Calendar group automatically display on every group’s calendar, even when sharing is turned off and no suggestions have been made. This is causing unwanted events to appear across departmental calendars.
Issue Summary:
Events created in the Main Calendar group, it automatically appears in all department calendars without being shared or suggested.
When a department event is suggested and accepted into the Main Calendar, it also appears on every calendar, instead of just the Main Calendar and the originating department calendar.
Steps to Reproduce:
Create a new event directly in the Main Calendar group.
Do not enable sharing or suggest it to another group.
Save and view other department calendars.
Result: The event appears on all calendars by default.
Expected Behavior:
Main Calendar events should only display on the Main Calendar unless explicitly shared or suggested.
Accepted department events should only appear on:
Main Calendar, and
The originating department calendar
Troubleshooting Completed:
Verified events are not marked as shared.
Confirmed the Main Calendar team is using “Accept as Live”, not “Copy Event,” during approval.
Reviewed files:
/livewhale/client/global.config.php; No custom group logic found.
/public_html/_ingredients/themes/global/components/group_calendar.php; No custom PHP or overrides.
Tested with events both shared and unshared; both appeared globally.
Widgets have proper group filters but issue persists.
Findings and Request:
This suggests the Main Calendar group may be flagged as a global/universal group at the database level.
Could you please check this configuration and advise how to disable this behavior, so Main Calendar events only appear where explicitly shared or suggested?
Thank you for your help! Please let me know if you need additional info.
I think the best place to hunt down a fix for this is your calendar settings file (Where the events_calendar widget lives). That’s usually _ingredients/themes/global/includes/calendar_settings.html. Could you share the contents of that file and we can suggest some amendments from there? Thanks!
is getting applied to all calendars, whether that’s the homepage (“Main Calendar” in name, probably) or a group calendar.
Here’s how I’d suggest fixing that.
Remove the line <arg id="group">Main Calendar</arg> from that calendar_settings.html file.
Log into LW and go to Toolbox > Groups and users and edit the group Main Calendar
Under the “Calendar URL” setting for that group, use the url / (just a forward slash) to set the top-level directory as that main calendar homepage.
This way, the remaining XPHP if/then block for “if we’re on the group directory, show the group calendar’s events” will also work for group=Main Calendar and the directory=/ (homepage). Hope this helps!
(There’s another way this could be done using an if/then/else block of XPHP, but I don’t think that’s necessary for what you’re doing here.)
I think I resolved this by removing the following from calendar_settings.html and removing the / from the Main Calendar group’s Calendar URL field as you instructed earlier.
I noticed in the file _ingredients/themes/global/includes/main.html it has the following that seems to be displaying the group name and link back to main calendar and is not on the main calendar anymore. =)
<!-- LW: Show group name if it's a group calendar -->
<xphp content="true">
<if var="group_directory"></if>
<content>
<div class="group-calendar-header"> <strong>
<xphp var="group_fullname" />
</strong> <a href="/">Go to main calendar</a> </div>
</content>
</xphp>
Thanks – if you remove that <arg id="group"><xphp var="group_fullname"/></arg> from calendar settings though, it means that every group calendar (like /music/ or /athletics/) won’t know how to show only its own groups’ events.
Here’s the long-term solution I’d suggest in your case then – this is the “Show only events from specific group(s)” example from our setup guide –
<xphp content="true">
<if var="server_dirname" equals="/" />
<content>
<!-- LW: if on the homepage, show the main calendar group's events -->
<arg id="group">Main Calendar</arg>
</content>
<else content="true">
<content>
<xphp content="true">
<if var="group_directory" />
<content>
<!-- LW: if on a group directory, show that group's events -->
<arg id="group"><xphp var="group_fullname"/></arg>
</content>
</xphp>
</content>
</else>
</xphp>
This nested bit of if/else/if logic will cover the / directory showing Main Calenday events, but all other group calendars will use the group_fullname variable (as defined by the URL in their group settings), and they’ll also get the back to main calendar link from the template. Hope this helps!
Ah-ha, touché! I see that now. I applied the "Show only events from specific group(s)"solution to calendar_settings.html and so far it’s working out nicely. Thank you very much! =)