Search The ForumSearch   RegisterRegister  LoginLogin

AfterLogic WebMail Pro

 AfterLogic Forum : AfterLogic WebMail Pro
Subject Topic: Calendar: accepting via the invite link r Post ReplyPost New Topic
Author
Message << Prev Topic | Next Topic >>
user34533
Newbie
Newbie


Joined: 24 September 2026
Location: Netherlands
Online Status: Offline
Posts: 1
Posted: 24 September 2026 at 6:14am | IP Logged Quote user34533

Hello,

We host WebMail Pro with the built-in DAV server for our customers. One customer told us that as soon as people respond to a meeting, invitations start going out again. They use eM Client, and eM Client's developers said the server ignores SCHEDULE-AGENT=NONE. That's true (more on that below), but when we went through the logs of their test, the extra invitations came from the Accept/Decline links in the invitation email.

What happened
1. The organizer saves an event in the webmail calendar. Every attendee gets an invitation.
2. An attendee with a Gmail address clicks Accept in that email.
3. The organizer's event is saved with only that attendee. The others are gone from it.
4. That save goes through the CalDAV scheduler. The attendee list changed, so it counts as significant, and the person who just accepted gets a new invitation right away.
5. The organizer saves the event again with everyone on it, and all attendees get invited again.

Where it goes wrong
In CalendarMeetingsPlugin, Manager::appointmentAction() removes all ATTENDEE properties and adds back only the person who responded, which makes sense for the reply. But the same object is then saved with updateEventRaw(). For attendees with an account on our server, that goes to their own calendar, so nothing breaks. For an external attendee, it goes to the organizer's calendar and overwrites the event. Because Afterlogic's Schedule\Plugin counts ATTENDEE as a significant property, the shorter list then triggers a new REQUEST.

Possible fix
Stripping the other attendees only from the reply, and just updating the responder's PARTSTAT in the stored event, would fix this for us. The attendee list stays the same, so no new invitation goes out.

Two smaller things we noticed
- The links do the RSVP on a plain GET. We saw an invite link opened from a Google IP a few seconds after the attendee's own click, which sent the organizer a second reply. A confirmation step would stop mail scanners from answering on someone's behalf.
- Sabre\VObject\ITip\Broker only skips attendees with SCHEDULE-AGENT=CLIENT (parseEventInfo() and parseEventForAttendee()), so NONE is handled like SERVER. RFC 6638 says the server should only schedule for SERVER or no parameter. We have events where the attendees have NONE and still got SCHEDULE-STATUS=1.1, which IMipPlugin sets after sending. A plain RSVP from eM Client doesn't cause any mail, but a real edit (time, title, attendees) does.

Versions
Code:
afterlogic  9.8.6.build9
afterlogic/dav   4.1.19
sabre/dav        4.7.1
sabre/vobject    4.6.1


Happy to share more log details privately if that helps.

Thanks!
Back to Top View user34533's Profile Search for other posts by user34533
 

If you wish to post a reply to this topic you must first login
If you are not already registered you must first register

  Post ReplyPost New Topic
Printable version Printable version

Forum Jump

Powered by Web Wiz Forums version 7.9
Copyright ©2001-2004 Web Wiz Guide