Lines Matching full:events
332 // But normalize wildcards and multi-namespace to empty for NEW events
335 … // Normalize namespace: treat wildcards and multi-namespace as empty (default) for NEW events
360 // If recurring, generate multiple events
416 $events = [];
418 $events = json_decode(file_get_contents($eventFile), true);
419 … $this->debugLog("Calendar saveEvent: Loaded " . count($events) . " dates from new location");
456 … $this->debugLog("Calendar saveEvent: Events on date before=$countBefore, after=$countAfter");
465 … $this->debugLog("Calendar saveEvent: No events found on deleteDate='$deleteDate' in old file");
474 if (!isset($events[$date])) {
475 $events[$date] = [];
476 } elseif (!is_array($events[$date])) {
479 $events[$date] = [];
503 foreach ($events[$date] as $key => $evt) {
505 $events[$date][$key] = $eventData;
511 $events[$date][] = $eventData;
514 $events[$date][] = $eventData;
517 CalendarFileHandler::writeJson($eventFile, $events);
600 echo json_encode(['success' => true, 'events' => $events, 'eventId' => $eventData['id']]);
637 $events = json_decode(file_get_contents($eventFile), true);
639 if (isset($events[$date])) {
640 foreach ($events[$date] as $event) {
649 … $events[$date] = array_values(array_filter($events[$date], function($event) use ($eventId) {
653 if (empty($events[$date])) {
654 unset($events[$date]);
657 CalendarFileHandler::writeJson($eventFile, $events);
740 $events = json_decode(file_get_contents($eventFile), true);
742 if (isset($events[$date])) {
743 foreach ($events[$date] as $event) {
794 $events = $this->loadEventsMultiNamespace($namespace, $year, $month);
796 $events = $this->loadEventsSingleNamespace($namespace, $year, $month);
799 $this->debugLog("Returning " . count($events) . " date keys");
800 foreach ($events as $dateKey => $dayEvents) {
801 $this->debugLog(" dateKey=$dateKey has " . count($dayEvents) . " events");
808 'events' => $events
866 $events = [];
871 $events = $decoded;
875 return $events;
893 // Load events from all namespaces
899 $events = $this->loadEventsSingleNamespace($ns, $year, $month);
902 foreach ($events as $dateKey => $dayEvents) {
924 // First, load events from the base namespace itself
925 $events = $this->loadEventsSingleNamespace($baseNamespace, $year, $month);
927 foreach ($events as $dateKey => $dayEvents) {
955 // Load events from this namespace
956 $events = $this->loadEventsSingleNamespace($namespace, $year, $month);
957 foreach ($events as $dateKey => $dayEvents) {
974 * Search all dates for events matching the search term
1156 $events = json_decode(file_get_contents($eventFile), true);
1158 if (isset($events[$date])) {
1160 foreach ($events[$date] as $key => $event) {
1162 $events[$date][$key]['completed'] = $completed;
1168 CalendarFileHandler::writeJson($eventFile, $events);
1174 echo json_encode(['success' => true, 'events' => $events]);
1313 * Import events from Google Calendar
1334 * Export events to Google Calendar
1389 // Calculate event duration for multi-day events
1397 // Generate recurring events
1500 $events = [];
1502 $events = json_decode(file_get_contents($eventFile), true);
1503 if (!is_array($events)) $events = [];
1506 if (!isset($events[$dateKey])) {
1507 $events[$dateKey] = [];
1543 $events[$dateKey][] = $eventData;
1544 CalendarFileHandler::writeJson($eventFile, $events);
1635 $events = json_decode(file_get_contents($eventFile), true);
1636 if (isset($events[$date])) {
1637 foreach ($events[$date] as $evt) {
1698 $events = json_decode(file_get_contents($file), true);
1700 if (!$events) continue;
1703 foreach ($events as $date => &$dayEvents) {
1704 // Filter out events with matching recurringId
1717 unset($events[$date]);
1723 CalendarFileHandler::writeJson($file, $events);
1746 $events = json_decode(file_get_contents($eventFile), true);
1748 if (!isset($events[$date])) {
1753 foreach ($events[$date] as $event) {