nextcloud / nextcloud/server

Per-event custom logo for iMIP invitation emails

Open
#58,859 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

Is your feature request related to a problem?
When sending calendar invitations via iMIP, the Nextcloud logo is hardcoded in IMipService.php and embedded as a Base64 image in every invitation email. There is no way to customize this logo per event or per calendar, making it impossible to send branded invitations on behalf of organizations, clients, or different projects hosted on the same Nextcloud instance.

Describe the solution you'd like
Add a logo field to the calendar event editor (in nextcloud/calendar) that accepts an image upload (e.g. PNG, max. ~200 KB). This logo URL/data would be stored as a custom X-NC-LOGO property in the event's iCalendar data and picked up by IMipService.php when rendering the invitation email.
Fallback behavior: if no event-level logo is set, use the existing instance-wide Nextcloud logo (current behavior).

Describe alternatives you've considered
A calendar-level logo (instead of per-event) would already cover most use cases and might be simpler to implement, as calendars already have color/display-name metadata.
A theming/admin setting for a global custom logo exists, but does not allow per-event or per-calendar customization.
Manual patching of IMipService.php works but is not maintainable across updates.

Use case
Organizations running a shared Nextcloud instance for multiple brands, clients, or departments want invitation emails to reflect the correct branding — not the Nextcloud default logo.
Additional context

Frontend counterpart would be in nextcloud/calendar (event editor, new logo upload field)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the hardcoded logo handling in IMipService.php and the event editor in nextcloud/calendar. Trace how event iCalendar data is stored and rendered into iMIP invitations. Done means a supported per-event or per-calendar logo is preserved as X-NC-LOGO, used in invitations, and falls back to the instance-wide logo when absent.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.