diff --git a/Calendarr iOS/Services/CalendarrAPI.swift b/Calendarr iOS/Services/CalendarrAPI.swift index 7b8d2a3..444f6b5 100644 --- a/Calendarr iOS/Services/CalendarrAPI.swift +++ b/Calendarr iOS/Services/CalendarrAPI.swift @@ -426,8 +426,11 @@ class CalendarrAPI { // MARK: – Calendar colour + /// Colour-only update: works for owners AND share recipients (recipients get + /// their own per-user colour; owners change the calendar's colour) — unlike + /// the owner-only PUT /calendars/{id}, and never touches the name. func updateLocalCalendarColor(id: Int, color: String) async throws { - _ = try await request("/api/local/calendars/\(id)", method: "PUT", body: ["color": color]) + _ = try await request("/api/local/calendars/\(id)/color", method: "PUT", body: ["color": color]) } func updateICalColor(id: Int, color: String) async throws { diff --git a/Calendarr iOS/Views/AccountsView.swift b/Calendarr iOS/Views/AccountsView.swift index 06beb11..99b005c 100644 --- a/Calendarr iOS/Views/AccountsView.swift +++ b/Calendarr iOS/Views/AccountsView.swift @@ -169,7 +169,9 @@ struct AccountsView: View { } else { ForEach(localCalendars) { cal in HStack { - CalendarColorDot(hex: cal.color, editable: cal.owned) { hex in + // Recipients of a shared calendar may recolour it (their + // own per-user colour); renaming stays owner-only. + CalendarColorDot(hex: cal.color, editable: true) { hex in try? await api.updateLocalCalendarColor(id: cal.id, color: hex) } Text(cal.name)