Calendar: Meeting Invitation Invitation to ${object.event_id.name} ${(object.event_id.user_id.email_formatted or user.email_formatted or '') | safe} ${('' if object.partner_id.email and object.partner_id.email == object.email else object.email) | safe} ${object.partner_id.id if object.partner_id.email and object.partner_id.email == object.email else False} ${object.partner_id.lang}
% set colors = {'needsAction': 'grey', 'accepted': 'green', 'tentative': '#FFFF00', 'declined': 'red'} % set is_online = 'appointment_type_id' in object.event_id and object.event_id.appointment_type_id % set customer = object.event_id.find_partner_customer() % set target_responsible = object.partner_id == object.event_id.partner_id % set target_customer = object.partner_id == customer

Hello ${object.common_name},

% if is_online and target_customer: Your appointment ${object.event_id.appointment_type_id.name} with ${object.event_id.user_id.name} has been booked. % elif is_online and target_responsible: % if customer ${customer.name} scheduled the following appointment ${object.event_id.appointment_type_id.name} with you. % else Your appointment ${object.event_id.appointment_type_id.name} has been booked. % endif % elif not target_responsible: ${object.event_id.user_id.partner_id.name} invited you for the ${object.event_id.name} meeting. % else: Your meeting ${object.event_id.name} has been booked. % endif

% if not is_online or object.state != 'accepted': Accept Decline % endif ${'Reschedule' if is_online and target_customer else 'View'}
${format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="EEEE", lang_code=object.env.lang)}
${str(object.event_id.start.day)}
${format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="MMMM y", lang_code=object.env.lang)}
% if not object.event_id.allday
${format_time(time=object.event_id.start, tz=object.mail_tz, time_format="short", lang_code=object.env.lang)}
% if object.mail_tz
(${object.mail_tz})
% endif %endif

Details of the event

    % if is_online:
  • Appointment Type: ${object.event_id.appointment_type_id.name}
  • % endif % if object.event_id.location:
  • Location: ${object.event_id.location} (View Map)
  • % endif % if recurrent:
  • When: ${object.recurrence_id.name}
  • % endif % if not object.event_id.allday and object.event_id.duration
  • Duration: ${('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60))}
  • % endif % if not is_online and object.event_id.description :
  • Description: ${object.event_id.description}
  • % elif is_online and object.event_id.description: % set splitted_description = object.event_id.description_to_html_lines()
  • Description:
      % for description_line in splitted_description:
    • ${description_line | safe}
    • % endfor
  • % endif
  • Attendees
      % for attendee in object.event_id.attendee_ids:
    • % if attendee.common_name != object.common_name: ${attendee.common_name} % else: You % endif
    • % endfor
  • % if object.event_id.videocall_location:
  • Join Video Call: ${object.event_id.videocall_location}
  • % endif

Thank you, % if object.event_id.user_id.signature:
${object.event_id.user_id.signature | safe} % endif
${object.partner_id.lang}
Calendar: Date updated ${object.event_id.name}: Date updated ${(object.event_id.user_id.email_formatted or user.email_formatted or '') | safe} ${('' if object.partner_id.email and object.partner_id.email == object.email else object.email) | safe} ${object.partner_id.id if object.partner_id.email and object.partner_id.email == object.email else False} ${object.partner_id.lang}
% set colors = {'needsAction': 'grey', 'accepted': 'green', 'tentative': '#FFFF00', 'declined': 'red'} % set is_online = 'appointment_type_id' in object.event_id and object.event_id.appointment_type_id % set customer = object.event_id.find_partner_customer() % set target_responsible = object.partner_id == object.event_id.partner_id % set target_customer = object.partner_id == customer

Hello ${object.common_name},

% if is_online and target_responsible: % if customer: The date of your appointment with ${customer.name} has been updated. % else Your appointment has been updated. % endif The appointment ${object.event_id.appointment_type_id.name} is now scheduled for ${object.event_id.get_display_time_tz(tz=object.partner_id.tz)}. % elif is_online and target_customer: The date of your appointment with ${object.event_id.user_id.partner_id.name} has been updated. The appointment ${object.event_id.appointment_type_id.name} is now scheduled for ${object.event_id.get_display_time_tz(tz=object.partner_id.tz)}. % else: The date of the meeting has been updated. The meeting ${object.event_id.name} created by ${object.event_id.user_id.partner_id.name} is now scheduled for ${object.event_id.get_display_time_tz(tz=object.partner_id.tz)}. % endif

${format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="EEEE", lang_code=object.env.lang)}
${str(object.event_id.start.day)}
${format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="MMMM y", lang_code=object.env.lang)}
% if not object.event_id.allday
${format_time(time=object.event_id.start, tz=object.mail_tz, time_format="short", lang_code=object.env.lang)}
% if object.mail_tz
(${object.mail_tz})
% endif %endif

Details of the event

    % if object.event_id.location:
  • Location: ${object.event_id.location} (View Map)
  • % endif % if recurrent:
  • When: ${object.recurrence_id.name}
  • % endif % if not object.event_id.allday and object.event_id.duration
  • Duration: ${('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60))}
  • % endif % if not is_online and object.event_id.description :
  • Description: ${object.event_id.description}
  • % elif is_online and object.event_id.description: % set splitted_description = object.event_id.description_to_html_lines()
  • Description:
      % for description_line in splitted_description:
    • ${description_line | safe}
    • % endfor
  • % endif
  • Attendees
      % for attendee in object.event_id.attendee_ids:
    • % if attendee.common_name != object.common_name: ${attendee.common_name} % else: You % endif
    • % endfor
  • % if object.event_id.videocall_location:
  • Join Video Call: ${object.event_id.videocall_location}
  • % endif

Thank you, % if object.event_id.user_id.signature:
${object.event_id.user_id.signature | safe} % endif
${object.partner_id.lang}
Calendar: Reminder ${object.event_id.name} - Reminder ${(object.event_id.user_id.email_formatted or user.email_formatted or '') | safe} ${('' if object.partner_id.email and object.partner_id.email == object.email else object.email) | safe} ${object.partner_id.id if object.partner_id.email and object.partner_id.email == object.email else False} ${object.partner_id.lang}
% set colors = {'needsAction': 'grey', 'accepted': 'green', 'tentative': '#FFFF00', 'declined': 'red'} % set is_online = 'appointment_type_id' in object.event_id and object.event_id.appointment_type_id % set recurrent = object.recurrence_id and not ctx.get('calendar_template_ignore_recurrence')

Hello ${object.common_name},

This is a reminder for the below event :

${format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="EEEE", lang_code=object.env.lang)}
${str(object.event_id.start.day)}
${format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="MMMM y", lang_code=object.env.lang)}
% if not object.event_id.allday
${format_time(time=object.event_id.start, tz=object.mail_tz, time_format="short", lang_code=object.env.lang)}
% if object.mail_tz
(${object.mail_tz})
% endif %endif

Details of the event

    % if object.event_id.location:
  • Location: ${object.event_id.location} (View Map)
  • % endif % if recurrent:
  • When: ${object.recurrence_id.name}
  • % endif % if not object.event_id.allday and object.event_id.duration
  • Duration: ${('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60))}
  • % endif % if not is_online and object.event_id.description :
  • Description: ${object.event_id.description}
  • % elif is_online and object.event_id.description: % set splitted_description = object.event_id.description_to_html_lines()
  • Description:
      % for description_line in splitted_description:
    • ${description_line | safe}
    • % endfor
  • % endif
  • Attendees
      % for attendee in object.event_id.attendee_ids:
    • % if attendee.common_name != object.common_name: ${attendee.common_name} % else: You % endif
    • % endfor
  • % if object.event_id.videocall_location:
  • Join Video Call: ${object.event_id.videocall_location}
  • % endif

Thank you, % if object.event_id.user_id.signature:
${object.event_id.user_id.signature | safe} % endif
${object.partner_id.lang}