Meeting invites miss VTIMEZONE block in attached ICS file
@miaulalala is already working on this.
Since May 19, 2026.
- Dominant language
- JavaScript
- Stars
- 2.2k
- Forks
- 586
- Avg merge
- 18h 27m
- Merged PRs (30d)
- 333
Description
[!TIP]
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Steps to reproduce
- Create a room and add participants.
- Schedule a meeting using the feature within Talk (top right button next to "Start call") and send out invites.
- Look at the
event.icsfile attached to the e-mail message.
Expected behaviour
The attendees receive invites bearing the correct start and end time.
Actual behaviour
Some clients (e.g. Grommunio) misinterpret the time and add the appointment to the user's calendar at an incorrect time. This is due to a missing VTIMEZONE block in the ICS file. Example of an 'event.ics' file attached to a meeting invitation sent out by NC Talk:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.5.6//EN
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
UID:8feJwIDaR8ekuqTpknKxIqcDHfL3RJHn
SUMMARY:Besprechung Nextcloud
DTSTART;TZID=Europe/Berlin:20260511T110000
DTEND;TZID=Europe/Berlin:20260511T130000
STATUS:CONFIRMED
DESCRIPTION:Naechste Schritte Nextcloud
LOCATION:https://nextcloud.example.com/call/5bqrw7mv
ORGANIZER;CN=XX;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:xxx@example.com
ATTENDEE;CN=YY;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION:mailto:yyy@example.com
DTSTAMP:20260422T140209Z
END:VEVENT
END:VCALENDAR
The time zone is specified as "Europe/Berlin", thus referencing a VTIMEZONE component with that name, but this component is missing. VTIMEZONE is optional, allowing references to global time zone definitions, but in this case the TZID must be prepended with a forward slash like so:
DTSTART;TZID=/Europe/Berlin:20260511T110000
Side note: once the user edits the calendar item using Nextcloud Calendar (like adding a description or changing the time), and an update is sent out to the attendees, a correctly formatted ICS file bearing a VTIMEZONE component is sent.
Talk app
Talk app version: 23.0.4
Custom Signaling server configured: yes, 2.1.1~docker
Custom TURN server configured: yes
Custom STUN server configured: yes
Browser
Microphone available: yes
Camera available: yes
Operating system: Ubuntu
Browser name: Firefox
Browser version: 150.0.3
Browser log
Server configuration
Operating system: Ubuntu 24.04
Web server: Apache
Database: MariaDB
PHP version: 8.3
Nextcloud Version: 33.0.3
List of activated apps:
Nextcloud configuration:
Server log (data/nextcloud.log)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.