diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index c4c719c5008..326ed33b83d 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -954,10 +954,8 @@ class calendar_event(osv.osv):
value['duration'] = duration
if allday: # For all day event
- value = {
- 'duration': 24
- }
- duration = 0.0
+ value = {'duration': 24}
+ duration = 24.0
start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")
if end_date and not duration:
@@ -968,7 +966,7 @@ class calendar_event(osv.osv):
elif not end_date:
end = start + timedelta(hours=duration)
value['date_deadline'] = end.strftime("%Y-%m-%d %H:%M:%S")
- elif end_date and duration:
+ elif end_date and duration and not allday:
# we have both, keep them synchronized:
# set duration based on end_date (arbitrary decision: this avoid
# getting dates like 06:31:48 instead of 06:32:00)
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
index 163a2f5878a..a028e3e0e64 100644
--- a/addons/crm/crm_meeting_view.xml
+++ b/addons/crm/crm_meeting_view.xml
@@ -37,7 +37,7 @@
+ on_change="onchange_dates(date,duration,False,allday)" />