diff --git a/components/calendar/calendar-client.tsx b/components/calendar/calendar-client.tsx
index 6846aaa6..0c91d549 100644
--- a/components/calendar/calendar-client.tsx
+++ b/components/calendar/calendar-client.tsx
@@ -1209,33 +1209,63 @@ export function CalendarClient({ initialCalendars, userId, userProfile }: Calend
-
-
- setEventForm({ ...eventForm, start: date?.toISOString() || "" })}
- showTimeSelect
- timeFormat="HH:mm"
- timeIntervals={15}
- dateFormat="dd/MM/yyyy HH:mm"
- placeholderText="Sélectionner une date et heure"
- className="w-full"
- />
-
+
+
-
-
-
setEventForm({ ...eventForm, end: date?.toISOString() || "" })}
- showTimeSelect
- timeFormat="HH:mm"
- timeIntervals={15}
- dateFormat="dd/MM/yyyy HH:mm"
- placeholderText="Sélectionner une date et heure"
- className="w-full"
- minDate={eventForm.start ? new Date(eventForm.start) : undefined}
- />
+
+
+
+
+ }
+ minDate={getDateFromString(eventForm.start)}
+ />
+
+
}
+ />
+
+
diff --git a/components/calendar/calendar-widget.tsx b/components/calendar/calendar-widget.tsx
index 9961eec1..4060e003 100644
--- a/components/calendar/calendar-widget.tsx
+++ b/components/calendar/calendar-widget.tsx
@@ -32,31 +32,38 @@ export function CalendarWidget() {
const fetchUpcomingEvents = async () => {
try {
setLoading(true);
- const now = new Date();
- const nextWeek = addDays(now, 7);
-
- // Fetch events directly from the calendar API
- const eventsRes = await fetch(
- `/api/calendar?start=${now.toISOString()}&end=${nextWeek.toISOString()}`
- );
-
- if (!eventsRes.ok) {
+
+ // Fetch calendars with events from the correct endpoint
+ const response = await fetch('/api/calendars');
+ if (!response.ok) {
throw new Error("Impossible de charger les événements");
}
- const eventsData = await eventsRes.json();
-
- // Sort events by start date and limit to 5
- const sortedEvents = eventsData
- .sort((a: Event, b: Event) => new Date(a.start).getTime() - new Date(b.start).getTime())
- .slice(0, 5)
- .map((event: Event) => ({
+ const calendarsData = await response.json();
+
+ // Extract and process events from all calendars
+ const allEvents = calendarsData.flatMap((calendar: any) =>
+ (calendar.events || []).map((event: any) => ({
...event,
+ calendarColor: calendar.color,
+ calendarName: calendar.name,
start: new Date(event.start),
- end: new Date(event.end),
- }));
+ end: new Date(event.end)
+ }))
+ );
- setEvents(sortedEvents);
+ // Filter events for the next 7 days
+ const now = new Date();
+ const nextWeek = addDays(now, 7);
+ const upcomingEvents = allEvents
+ .filter((event: Event) => {
+ const eventStart = new Date(event.start);
+ return eventStart >= now && eventStart <= nextWeek;
+ })
+ .sort((a: Event, b: Event) => a.start.getTime() - b.start.getTime())
+ .slice(0, 5);
+
+ setEvents(upcomingEvents);
} catch (err) {
console.error("Erreur lors du chargement des événements:", err);
setError("Impossible de charger les événements à venir");