I am trying to link an express object to a Calendar event.
IN my app.php - I checked it loads. -
I cant get it to Firer when an Express object is updated in the dashboard Form using a listener event. (Also test the listener event works on another event)
[code]
Events::addListener(‘on_express_entry_save’, function($event) {
try {
\Log::addInfo('Express save event fired');
$entry = $event->getEntryObject();
$handle = $entry->getEntity()->getHandle();
\Log::addInfo('Entity handle: ' . $handle);
if ($handle !== 'domain_names') {
\Log::addInfo('Skipped: wrong entity handle (' . $handle . ')');
return;
}
$app = Application::getFacadeApplication();
// Get the Calendar
$calendarService = $app->make('calendar');
$calendar = $calendarService->getByName('Renewals'); // Use actual name
if (!$calendar) {
\Log::addError('Calendar "Renewals" not found.');
return;
}
// Get the Event Service
$eventService = $app->make('calendar/event');
// Define start/end dates
$start = $entry->getAttribute('domain_expiry_date') ?: new \DateTime();
$end = (clone $start)->modify('+1 hour');
// Event title example
$title = $entry->getAttribute('domain_name') ?: 'Unnamed Domain Renewal';
// Try to find an existing linked event
$linkedEvent = $entry->getAttribute('domain_calendar_event_link');
if ($linkedEvent) {
// --- Update existing event ---
$linkedEvent->setName($title);
$linkedEvent->setStart($start);
$linkedEvent->setEnd($end);
$linkedEvent->setCalendar($calendar);
$linkedEvent->save();
\Log::addInfo("Updated existing event ID {$linkedEvent->getID()} for entry {$entry->getID()}");
} else {
// --- Create new event ---
$newEvent = $eventService->add(
$calendar,
$title,
$start,
$end
);
// Link the new event to the Express entry
$entry->setAttribute('domain_calendar_event_link', $newEvent);
\Log::addInfo("Created new event ID {$newEvent->getID()} for entry {$entry->getID()}");
}
\Log::addInfo('Finished successfully.');
} catch (\Exception $e) {
\Log::addError('Express calendar sync failed: ' . $e->getMessage());
}
});
[/code]
From what I can Tell if i add new Express Entries or Edit save current ones this never fires - ( No Logs)
Any Ideas what I have done Wrong?
Thanks
Carl