diff --git a/frontend/src/components/calendar/EventDetailPanel.tsx b/frontend/src/components/calendar/EventDetailPanel.tsx
index 3c0c4e4..882a0bf 100644
--- a/frontend/src/components/calendar/EventDetailPanel.tsx
+++ b/frontend/src/components/calendar/EventDetailPanel.tsx
@@ -13,6 +13,7 @@ import { formatUpdatedAt } from '@/components/shared/utils';
import CopyableField from '@/components/shared/CopyableField';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
+import { DatePicker } from '@/components/ui/date-picker';
import { Textarea } from '@/components/ui/textarea';
import { Select } from '@/components/ui/select';
import { Checkbox } from '@/components/ui/checkbox';
@@ -633,22 +634,24 @@ export default function EventDetailPanel({
- updateField('start_datetime', e.target.value)}
+ onChange={(v) => updateField('start_datetime', v)}
className="text-xs"
required
/>
- updateField('end_datetime', e.target.value)}
+ onChange={(v) => updateField('end_datetime', v)}
className="text-xs"
/>
diff --git a/frontend/src/components/calendar/EventForm.tsx b/frontend/src/components/calendar/EventForm.tsx
index f3168e3..4bae0fc 100644
--- a/frontend/src/components/calendar/EventForm.tsx
+++ b/frontend/src/components/calendar/EventForm.tsx
@@ -13,6 +13,7 @@ import {
SheetClose,
} from '@/components/ui/sheet';
import { Input } from '@/components/ui/input';
+import { DatePicker } from '@/components/ui/date-picker';
import { Textarea } from '@/components/ui/textarea';
import { Select } from '@/components/ui/select';
import { Label } from '@/components/ui/label';
@@ -281,22 +282,24 @@ export default function EventForm({ event, templateData, templateName, initialSt
diff --git a/frontend/src/components/todos/TodoDetailPanel.tsx b/frontend/src/components/todos/TodoDetailPanel.tsx
index e65021e..a7893ec 100644
--- a/frontend/src/components/todos/TodoDetailPanel.tsx
+++ b/frontend/src/components/todos/TodoDetailPanel.tsx
@@ -389,38 +389,31 @@ export default function TodoDetailPanel({
updateField('due_date', v)}
+ mode="datetime"
+ value={editState.due_date ? (editState.due_date + 'T' + (editState.due_time || '00:00')) : ''}
+ onChange={(v) => {
+ updateField('due_date', v ? v.slice(0, 10) : '');
+ updateField('due_time', v ? v.slice(11, 16) : '');
+ }}
className="text-xs"
/>
-
- updateField('due_time', e.target.value)}
+
+
-
-
-
-
-
{/* Save / Cancel at bottom */}
-
- setFormData({ ...formData, due_time: e.target.value })}
- />
+
+
-
-
-
-
-