Questions regarding delegation, attachments and time errors
Hello, I have 4 questions. If any are better directed elsewhere, please let me know. Some background. We are a small consulting firm using Server.app v5.2 and its associated WebCal client. All of our users are running El Cap or better and also use Calendar.app. We also make use of delegation to provide other employees access to our calendars. 1) At the top of the WebCal interface there is a popup that permits full display of the calendars that we have delegated access to. We’ve found this a very useful feature and wonder if there is some way to do the same using the Mac Calendar.app client? If not, is there any other way to provide full calendar display of delegated calendars 2) I have one user (the boss of course ;-)) who has delegated read access to all employees. When trying to use the aforementioned popup menu in the WebCal interface to display his calendar we get the “Getting events from server…” panel, but it never completes. No problem accessing other user’s calendars. How would one debug, and hopefully fix, this issue? His calendar is very busy! Creating an event and inviting the boss does present his busy/free times without issue. 3) We recently hired some PC user types who are pushing us to move to Outlook and Exchange for the simple reason that they want to be able to add attachments to meeting invitations, e.g. meeting agenda. Apparently Outlook/Exchange can do this. Is this possible using Mac’s Calendar.app and/or the WebCal client? 4) We’ve had some reports of inbound meeting invitations from Exchange servers having wrong times (e.g. one hour off). How can we determine what the cause of this time shift might be? I’m assuming that the time zone of the calendar server is taken directly from the OS, and that this is not the source of the occasional error. Many thanks in advance for any help offered. Ian
On Apr 21, 2017, at 12:32 PM, Ian Baker <ibaker@eem.ca> wrote:
Hello,
I have 4 questions. If any are better directed elsewhere, please let me know.
Some background. We are a small consulting firm using Server.app v5.2 and its associated WebCal client. All of our users are running El Cap or better and also use Calendar.app. We also make use of delegation to provide other employees access to our calendars.
1) At the top of the WebCal interface there is a popup that permits full display of the calendars that we have delegated access to. We’ve found this a very useful feature and wonder if there is some way to do the same using the Mac Calendar.app client? If not, is there any other way to provide full calendar display of delegated calendars
In Calendar.app, the 'Window' menu should contain entries for all of the accounts for which the current user has delegate access. Choosing one should open that calendar in a separate window. To make delegate calendars appear in-line with the user's calendars, select the CalDAV account in Calendar preferences, and use the checkboxes in the 'delegation' tab.
2) I have one user (the boss of course ;-)) who has delegated read access to all employees. When trying to use the aforementioned popup menu in the WebCal interface to display his calendar we get the “Getting events from server…” panel, but it never completes. No problem accessing other user’s calendars. How would one debug, and hopefully fix, this issue? His calendar is very busy! Creating an event and inviting the boss does present his busy/free times without issue.
Hard to say what might be wrong. It could be stuck, or it could just be taking a long time. The CalendarServer logs should be somewhat useful here; they are in /Library/Server/Calendar & Contacts/Logs - specifically access.log and error.log. You could also use the web developer console in the browser to look for javascript errors (the webcal client is implemented in javascript).
3) We recently hired some PC user types who are pushing us to move to Outlook and Exchange for the simple reason that they want to be able to add attachments to meeting invitations, e.g. meeting agenda. Apparently Outlook/Exchange can do this. Is this possible using Mac’s Calendar.app and/or the WebCal client?
Attachments are supported in Calendar.app. Select an event, click "Attachments", then "Add attachment". Attachments are not supported in the web client.
4) We’ve had some reports of inbound meeting invitations from Exchange servers having wrong times (e.g. one hour off). How can we determine what the cause of this time shift might be? I’m assuming that the time zone of the calendar server is taken directly from the OS, and that this is not the source of the occasional error.
Ah, timezones. There are at least a few common causes of this problem. Often times, comparing the event received from Exchange with one generated by Calendar is all that's needed to reveal the salient difference. To do this, you can drag an event from Calendar to the desktop to reveal the ics file, then open that file in a text editor. The iCalendar body might look something like shown below. I've highlighted in red portions that are especially relevant: the VTIMEZONE component, which describes the client's understanding of time zones with respect to things like daylight savings time, and also the DTSTART and DTEND properties in the VEVENT component, which defines the starting and ending time stamp for the event *including time zone specification*. BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Apple Inc.//Mac OS X 10.12.5//EN CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:America/Los_Angeles BEGIN:DAYLIGHT TZOFFSETFROM:-0800 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU DTSTART:20070311T020000 TZNAME:PDT TZOFFSETTO:-0700 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0700 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU DTSTART:20071104T020000 TZNAME:PST TZOFFSETTO:-0800 END:STANDARD END:VTIMEZONE BEGIN:VEVENT CREATED:20170421T193938Z UID:37F10F60-55D5-4631-8810-F86DA2DFA9DB DTEND;TZID=America/Los_Angeles:20170421T114500 TRANSP:OPAQUE X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC SUMMARY:New Event DTSTART;TZID=America/Los_Angeles:20170421T110000 DTSTAMP:20170421T193938Z SEQUENCE:0 BEGIN:VALARM X-WR-ALARMUID:50C22A83-4512-4888-9194-7E3E600206AF UID:50C22A83-4512-4888-9194-7E3E600206AF TRIGGER:-PT5M X-APPLE-DEFAULT-ALARM:TRUE ATTACH;VALUE=URI:Basso ACTION:AUDIO END:VALARM END:VEVENT END:VCALENDAR Hope this helps, -dre
Hello Andre, Thanks for your reply.
On Apr 21, 2017, at 3:57 PM, Andre LaBranche <dre@apple.com> wrote:
On Apr 21, 2017, at 12:32 PM, Ian Baker <ibaker@eem.ca <mailto:ibaker@eem.ca>> wrote:
Hello,
I have 4 questions. If any are better directed elsewhere, please let me know.
Some background. We are a small consulting firm using Server.app v5.2 and its associated WebCal client. All of our users are running El Cap or better and also use Calendar.app. We also make use of delegation to provide other employees access to our calendars.
1) At the top of the WebCal interface there is a popup that permits full display of the calendars that we have delegated access to. We’ve found this a very useful feature and wonder if there is some way to do the same using the Mac Calendar.app client? If not, is there any other way to provide full calendar display of delegated calendars
In Calendar.app, the 'Window' menu should contain entries for all of the accounts for which the current user has delegate access. Choosing one should open that calendar in a separate window. To make delegate calendars appear in-line with the user's calendars, select the CalDAV account in Calendar preferences, and use the checkboxes in the 'delegation' tab.
Wow - you learn something new every day - it never occurred to me to look there.
2) I have one user (the boss of course ;-)) who has delegated read access to all employees. When trying to use the aforementioned popup menu in the WebCal interface to display his calendar we get the “Getting events from server…” panel, but it never completes. No problem accessing other user’s calendars. How would one debug, and hopefully fix, this issue? His calendar is very busy! Creating an event and inviting the boss does present his busy/free times without issue.
Hard to say what might be wrong. It could be stuck, or it could just be taking a long time. The CalendarServer logs should be somewhat useful here; they are in /Library/Server/Calendar & Contacts/Logs - specifically access.log and error.log. You could also use the web developer console in the browser to look for javascript errors (the webcal client is implemented in javascript).
OK. I’ll have a look there. Must be something specific to the WebCal client as using the Windows trick from above loads the boss’s calendar in less that 30 secs.
3) We recently hired some PC user types who are pushing us to move to Outlook and Exchange for the simple reason that they want to be able to add attachments to meeting invitations, e.g. meeting agenda. Apparently Outlook/Exchange can do this. Is this possible using Mac’s Calendar.app and/or the WebCal client?
Attachments are supported in Calendar.app. Select an event, click "Attachments", then "Add attachment". Attachments are not supported in the web client.
Sorry André - color me thick, but I don’t see where to click “Attachments”. Here is what I see when I open an event: Am I looking in the wrong spot?
4) We’ve had some reports of inbound meeting invitations from Exchange servers having wrong times (e.g. one hour off). How can we determine what the cause of this time shift might be? I’m assuming that the time zone of the calendar server is taken directly from the OS, and that this is not the source of the occasional error.
Ah, timezones. There are at least a few common causes of this problem. Often times, comparing the event received from Exchange with one generated by Calendar is all that's needed to reveal the salient difference. To do this, you can drag an event from Calendar to the desktop to reveal the ics file, then open that file in a text editor. The iCalendar body might look something like shown below. I've highlighted in red portions that are especially relevant: the VTIMEZONE component, which describes the client's understanding of time zones with respect to things like daylight savings time, and also the DTSTART and DTEND properties in the VEVENT component, which defines the starting and ending time stamp for the event *including time zone specification*.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Apple Inc.//Mac OS X 10.12.5//EN CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:America/Los_Angeles BEGIN:DAYLIGHT TZOFFSETFROM:-0800 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU DTSTART:20070311T020000 TZNAME:PDT TZOFFSETTO:-0700 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0700 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU DTSTART:20071104T020000 TZNAME:PST TZOFFSETTO:-0800 END:STANDARD END:VTIMEZONE BEGIN:VEVENT CREATED:20170421T193938Z UID:37F10F60-55D5-4631-8810-F86DA2DFA9DB DTEND;TZID=America/Los_Angeles:20170421T114500 TRANSP:OPAQUE X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC SUMMARY:New Event DTSTART;TZID=America/Los_Angeles:20170421T110000 DTSTAMP:20170421T193938Z SEQUENCE:0 BEGIN:VALARM X-WR-ALARMUID:50C22A83-4512-4888-9194-7E3E600206AF UID:50C22A83-4512-4888-9194-7E3E600206AF TRIGGER:-PT5M X-APPLE-DEFAULT-ALARM:TRUE ATTACH;VALUE=URI:Basso ACTION:AUDIO END:VALARM END:VEVENT END:VCALENDAR
Thanks for the tip here too. I’ll check this out when we next get a time-shifted invitation. Help is very much appreciated! Ian
On Apr 21, 2017, at 1:34 PM, Ian Baker <ibaker@eem.ca> wrote:
...
3) We recently hired some PC user types who are pushing us to move to Outlook and Exchange for the simple reason that they want to be able to add attachments to meeting invitations, e.g. meeting agenda. Apparently Outlook/Exchange can do this. Is this possible using Mac’s Calendar.app and/or the WebCal client?
Attachments are supported in Calendar.app. Select an event, click "Attachments", then "Add attachment". Attachments are not supported in the web client.
Sorry André - color me thick, but I don’t see where to click “Attachments”. Here is what I see when I open an event: <PastedGraphic-3.png> Am I looking in the wrong spot?
Here's what I see: For some relatively recent release, client and server both switched to a new mechanism for doing attachments (called "managed attachments"). I'd guess the reason you aren't offered the option for adding attachments is a version mismatch between client and server; either the server is too old for the client or vice versa. I'm pretty sure (but not positive) that newer clients do not retain the ability to do the older attachments scheme. If the server is new enough to support managed attachments, this feature should be enabled by default. You can check by loading a calendar home in a browser, e.g. https://your-server.example.com/calendars/users/you <https://your-server.example.com/calendars/users/you> (log in with the same credentials used for CalDAV). On the resulting page you'll see a bunch of text; do a find for managed-attachments-server-URL. If it's present, managed attachments is (are?) enabled. Support for managed attachments can be disabled on the server, however if you do this, I'm pretty sure you will break access to any existing attachments created in the 'managed attachments' style. It may be the case that it's not possible to move from "managed attachments" back to the older style ("dropbox" - no, not "Dropbox"). As I recall, the config switch is mostly there to allow sites to delay the upgrade to managed attachments, but not for going back to dropbox once the upgrade has happened. You can check for existing attachments by querying the database; something like: sudo psql -h /var/run/caldavd/PostgresSocket -U caldav -c "select * from attachment;" ... and you can see if the server has already performed the one-time upgrade to managed attachments by querying the 'calendarserver' table - if MANAGED-ATTACHMENTS is '1', then the attachments upgrade has already occurred. % sudo psql -h /var/run/caldavd/PostgresSocket -U caldav -c "select * from calendarserver;" name | value --------------------------+------- CALENDAR-DATAVERSION | 6 ADDRESSBOOK-DATAVERSION | 2 NOTIFICATION-DATAVERSION | 1 MANAGED-ATTACHMENTS | 1 MIN-VALID-REVISION | 29 VERSION | 63 (the above output is from a slightly older-than-current CalendarServer version) There is support for converting dropbox attachments into managed attachments as a one-time operation (typically at upgrade time), but not converting in the other direction. It may be possible to change that 1 to a 0 to allow the server to re-upgrade attachments, but that is wholly untested. You can disable managed attachments on the server (and implicitly enable dropbox attachments) by setting <!-- Calendar Managed Attachments --> <key>EnableManagedAttachments</key> <false/> in the CalendarServer config. To isolate that change from the rest of the config (some of which is automatically maintained by the UI), you can create /Library/Server/Calendar & Contacts/Config/caldavd-user.plist containing: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <!-- Calendar Managed Attachments --> <key>EnableManagedAttachments</key> <false/> </dict> </plist> ... then bounce the service using the GUI switch, or: sudo calendarserver_config --restart To reiterate, you would probably have better luck getting everything updated than trying to do any style of attachments across a sufficiently large version skew of clients. -dre
On Apr 21, 2017, at 5:18 PM, Andre LaBranche <dre@apple.com> wrote:
On Apr 21, 2017, at 1:34 PM, Ian Baker <ibaker@eem.ca <mailto:ibaker@eem.ca>> wrote:
...
3) We recently hired some PC user types who are pushing us to move to Outlook and Exchange for the simple reason that they want to be able to add attachments to meeting invitations, e.g. meeting agenda. Apparently Outlook/Exchange can do this. Is this possible using Mac’s Calendar.app and/or the WebCal client?
Attachments are supported in Calendar.app. Select an event, click "Attachments", then "Add attachment". Attachments are not supported in the web client.
Sorry André - color me thick, but I don’t see where to click “Attachments”. Here is what I see when I open an event: <PastedGraphic-3.png> Am I looking in the wrong spot?
Here's what I see:
<PastedGraphic-1.png>
For some relatively recent release, client and server both switched to a new mechanism for doing attachments (called "managed attachments"). I'd guess the reason you aren't offered the option for adding attachments is a version mismatch between client and server; either the server is too old for the client or vice versa. I'm pretty sure (but not positive) that newer clients do not retain the ability to do the older attachments scheme. If the server is new enough to support managed attachments, this feature should be enabled by default. You can check by loading a calendar home in a browser, e.g. https://your-server.example.com/calendars/users/you <https://your-server.example.com/calendars/users/you> (log in with the same credentials used for CalDAV). On the resulting page you'll see a bunch of text; do a find for managed-attachments-server-URL. If it's present, managed attachments is (are?) enabled.
Support for managed attachments can be disabled on the server, however if you do this, I'm pretty sure you will break access to any existing attachments created in the 'managed attachments' style. It may be the case that it's not possible to move from "managed attachments" back to the older style ("dropbox" - no, not "Dropbox"). As I recall, the config switch is mostly there to allow sites to delay the upgrade to managed attachments, but not for going back to dropbox once the upgrade has happened. You can check for existing attachments by querying the database; something like:
sudo psql -h /var/run/caldavd/PostgresSocket -U caldav -c "select * from attachment;"
... and you can see if the server has already performed the one-time upgrade to managed attachments by querying the 'calendarserver' table - if MANAGED-ATTACHMENTS is '1', then the attachments upgrade has already occurred.
% sudo psql -h /var/run/caldavd/PostgresSocket -U caldav -c "select * from calendarserver;" name | value --------------------------+------- CALENDAR-DATAVERSION | 6 ADDRESSBOOK-DATAVERSION | 2 NOTIFICATION-DATAVERSION | 1 MANAGED-ATTACHMENTS | 1 MIN-VALID-REVISION | 29 VERSION | 63
(the above output is from a slightly older-than-current CalendarServer version)
There is support for converting dropbox attachments into managed attachments as a one-time operation (typically at upgrade time), but not converting in the other direction. It may be possible to change that 1 to a 0 to allow the server to re-upgrade attachments, but that is wholly untested.
You can disable managed attachments on the server (and implicitly enable dropbox attachments) by setting
<!-- Calendar Managed Attachments --> <key>EnableManagedAttachments</key> <false/>
in the CalendarServer config. To isolate that change from the rest of the config (some of which is automatically maintained by the UI), you can create /Library/Server/Calendar & Contacts/Config/caldavd-user.plist containing:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd <http://www.apple.com/DTDs/PropertyList-1.0.dtd>"> <plist version="1.0"> <dict>
<!-- Calendar Managed Attachments --> <key>EnableManagedAttachments</key> <false/>
</dict> </plist>
... then bounce the service using the GUI switch, or: sudo calendarserver_config --restart
To reiterate, you would probably have better luck getting everything updated than trying to do any style of attachments across a sufficiently large version skew of clients.
Tried from a different box, and found the Attachments button. Thank-you for the detailed explanation André. I think we’ll go for your “update everything” recommendation. Ian
On Apr 21, 2017, at 3:57 PM, Andre LaBranche <dre@apple.com> wrote:
2) I have one user (the boss of course ;-)) who has delegated read access to all employees. When trying to use the aforementioned popup menu in the WebCal interface to display his calendar we get the “Getting events from server…” panel, but it never completes. No problem accessing other user’s calendars. How would one debug, and hopefully fix, this issue? His calendar is very busy! Creating an event and inviting the boss does present his busy/free times without issue.
Hard to say what might be wrong. It could be stuck, or it could just be taking a long time. The CalendarServer logs should be somewhat useful here; they are in /Library/Server/Calendar & Contacts/Logs - specifically access.log and error.log. You could also use the web developer console in the browser to look for javascript errors (the webcal client is implemented in javascript).
I didn’t see anything particularly related to the boss’s attempts to login to webcal in the error.log, but the browser console log showed these errors. This is a bit beyond me. Any thoughts? Any way to identify and repair the “detached event without a parent”? Also a related question. Last week I used the Mac Calendar.app to log into the boss’s account to help him configure some delegation permissions in the app’s preferences, and discovered that a number of emails were sent under my personal email declining invitations. Here is an example:
Ian Baker has declined your invitation to the event: Lunch au bureau, scheduled for January 26, 2017 at 12:00 PM (America/Toronto (EDT) offset -14400 (Daylight)).
I personally was not invited to these events, but the boss was, and he already declined the invitation back in January (according to him). I don’t understand why these emails were sent. Is this expected behaviour? And if so, is there any way to prevent these from going out? TIA Ian
On May 7, 2017, at 6:46 AM, Ian Baker <ibaker@eem.ca> wrote: ... <Screen Shot 2017-05-07 at 9.31.14 AM.png>
This is a bit beyond me.
Any thoughts? Any way to identify and repair the “detached event without a parent”?
Hi, It's hard to say exactly what is wrong without some idea of what the problematic event(s) look like. If you can make a slight alteration to the webcalendar javascript, the error message could include a reference to the event in question. In the file /Applications/Server.app/Contents/ServerRoot/usr/share/collabd/webcal/public/javascripts/sprockets.js, find the line: throw 'Tried to create a detached calendar event without a parent event.'; and change it to: throw 'Tried to create an expanded calendar event ' + inEventStruct.UID.value + ' without a parent event.'; You may need to bounce your browser to pick up the change. If it worked, when trying to load the problem event in the wiki calendar, you should see an exception logged similar to: (note that the above was generated without having reproduced the actual problem; I just inverted the logic of the 'if' expression that contains the 'throw' statement.) Once you have the UID of the event, you can dump the body text on the server as follows: # run as root, replacing the UID with the one your client logged about sudo psql -h /var/run/caldavd/PostgresSocket -U caldav caldav -c "select icalendar_text from calendar_object where icalendar_uid = 'c784ee85-5f70-f701-5961-573cdc2e27db';" -dre
Also a related question. Last week I used the Mac Calendar.app to log into the boss’s account to help him configure some delegation permissions in the app’s preferences, and discovered that a number of emails were sent under my personal email declining invitations. Here is an example:
Ian Baker has declined your invitation to the event: Lunch au bureau, scheduled for January 26, 2017 at 12:00 PM (America/Toronto (EDT) offset -14400 (Daylight)).
I personally was not invited to these events, but the boss was, and he already declined the invitation back in January (according to him).
I don’t understand why these emails were sent. Is this expected behaviour? And if so, is there any way to prevent these from going out?
TIA
Ian _______________________________________________ calendarserver-users mailing list calendarserver-users@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/calendarserver-users
On May 8, 2017, at 5:51 PM, Andre LaBranche <dre@apple.com> wrote:
On May 7, 2017, at 6:46 AM, Ian Baker <ibaker@eem.ca <mailto:ibaker@eem.ca>> wrote:
...
<Screen Shot 2017-05-07 at 9.31.14 AM.png>
This is a bit beyond me.
Any thoughts? Any way to identify and repair the “detached event without a parent”?
Hi,
It's hard to say exactly what is wrong without some idea of what the problematic event(s) look like. If you can make a slight alteration to the webcalendar javascript, the error message could include a reference to the event in question.
In the file /Applications/Server.app/Contents/ServerRoot/usr/share/collabd/webcal/public/javascripts/sprockets.js, find the line:
throw 'Tried to create a detached calendar event without a parent event.';
and change it to:
throw 'Tried to create an expanded calendar event ' + inEventStruct.UID.value + ' without a parent event.';
You may need to bounce your browser to pick up the change. If it worked, when trying to load the problem event in the wiki calendar, you should see an exception logged similar to:
<PastedGraphic-2.png>
(note that the above was generated without having reproduced the actual problem; I just inverted the logic of the 'if' expression that contains the 'throw' statement.)
Once you have the UID of the event, you can dump the body text on the server as follows:
# run as root, replacing the UID with the one your client logged about sudo psql -h /var/run/caldavd/PostgresSocket -U caldav caldav -c "select icalendar_text from calendar_object where icalendar_uid = 'c784ee85-5f70-f701-5961-573cdc2e27db';"
-dre
Thanks for this Andre. I’ve made the javascript change, identified the problematic event, and dumped the body text. In fact the body text seems to include two different events, one STATUS:CANCELLED, and the other STATUS:CONFIRMED. How can I identify the problem with this object? Could I perhaps send you the body text under separate cover? Also, any thoughts on the issue I described below?
Also a related question. Last week I used the Mac Calendar.app to log into the boss’s account to help him configure some delegation permissions in the app’s preferences, and discovered that a number of emails were sent under my personal email declining invitations. Here is an example:
Ian Baker has declined your invitation to the event: Lunch au bureau, scheduled for January 26, 2017 at 12:00 PM (America/Toronto (EDT) offset -14400 (Daylight)).
I personally was not invited to these events, but the boss was, and he already declined the invitation back in January (according to him).
I don’t understand why these emails were sent. Is this expected behaviour? And if so, is there any way to prevent these from going out?
Thanks Ian
On May 9, 2017, at 11:39 AM, Ian Baker <ibaker@eem.ca> wrote: ... I’ve made the javascript change, identified the problematic event, and dumped the body text. In fact the body text seems to include two different events, one STATUS:CANCELLED, and the other STATUS:CONFIRMED.
I don't think that in itself is sign of a problem, if these statuses apply to different event instances / recurrences. A single iCalendar body might contain multiple instances if it defines a recurring event for which there are one-off exceptions (e.g. extra attendee for one instance).
How can I identify the problem with this object?
One option is to use the pycalendar library, which is the module used by Calendar Server for dealing with icalendar objects. In that module there's a 'validator' script that takes the path to an .ics file as a command line argument. ╭─ andre@zomg ~/work ╰─ $ git clone https://github.com/apple/ccs-pycalendar.git Cloning into 'ccs-pycalendar'... remote: Counting objects: 2569, done. remote: Total 2569 (delta 0), reused 0 (delta 0), pack-reused 2569 Receiving objects: 100% (2569/2569), 604.22 KiB | 0 bytes/s, done. Resolving deltas: 100% (2027/2027), done. ╭─ andre@zomg ~/work ╰─ $ cd ccs-pycalendar ╭─ andre@zomg ~/work/ccs-pycalendar ╰─ $ python setup.py build running build running build_py ... copying src/zonal/utils.py -> build/lib/zonal copying src/zonal/zone.py -> build/lib/zonal ╭─ andre@zomg ~/work/ccs-pycalendar ╰─ $ cd build/lib ╭─ andre@zomg ~/work/ccs-pycalendar/build/lib ╰─ $ python pycalendar/validator.py /Users/andre/Desktop/Server\ Staff.ics No problems
Could I perhaps send you the body text under separate cover?
Yeah, email it to me directly (sanitized if needed).
Also, any thoughts on the issue I described below?
Also a related question. Last week I used the Mac Calendar.app to log into the boss’s account to help him configure some delegation permissions in the app’s preferences, and discovered that a number of emails were sent under my personal email declining invitations. Here is an example:
Ian Baker has declined your invitation to the event: Lunch au bureau, scheduled for January 26, 2017 at 12:00 PM (America/Toronto (EDT) offset -14400 (Daylight)).
I personally was not invited to these events, but the boss was, and he already declined the invitation back in January (according to him).
I don’t understand why these emails were sent. Is this expected behaviour? And if so, is there any way to prevent these from going out?
I have some vague memory of this problem of sending notifications about past events, but I couldn't find a bug specifically about late *email* notifications. It is possible that your boss went through the correct motions to decline the events, but that didn't actually happen server-side (e.g. iOS clients are generally not awesome at allowing you to know if your changes are hitting the server). To possibly corroborate this, you could look for PUTs / DELETEs of items in your boss' CalDAV inbox, in calendar server's access.log. Even if your boss' declines never processed, it's still a bug to send emails about past events. What versions of everything are you and your boss using? -dre
On May 9, 2017, at 8:31 PM, Andre LaBranche <dre@apple.com> wrote:
On May 9, 2017, at 11:39 AM, Ian Baker <ibaker@eem.ca <mailto:ibaker@eem.ca>> wrote: ... I’ve made the javascript change, identified the problematic event, and dumped the body text. In fact the body text seems to include two different events, one STATUS:CANCELLED, and the other STATUS:CONFIRMED.
I don't think that in itself is sign of a problem, if these statuses apply to different event instances / recurrences. A single iCalendar body might contain multiple instances if it defines a recurring event for which there are one-off exceptions (e.g. extra attendee for one instance).
How can I identify the problem with this object?
One option is to use the pycalendar library, which is the module used by Calendar Server for dealing with icalendar objects. In that module there's a 'validator' script that takes the path to an .ics file as a command line argument.
╭─ andre@zomg ~/work ╰─ $ git clone https://github.com/apple/ccs-pycalendar.git <https://github.com/apple/ccs-pycalendar.git> Cloning into 'ccs-pycalendar'... remote: Counting objects: 2569, done. remote: Total 2569 (delta 0), reused 0 (delta 0), pack-reused 2569 Receiving objects: 100% (2569/2569), 604.22 KiB | 0 bytes/s, done. Resolving deltas: 100% (2027/2027), done.
╭─ andre@zomg ~/work ╰─ $ cd ccs-pycalendar
╭─ andre@zomg ~/work/ccs-pycalendar ╰─ $ python setup.py build running build running build_py ... copying src/zonal/utils.py -> build/lib/zonal copying src/zonal/zone.py -> build/lib/zonal
╭─ andre@zomg ~/work/ccs-pycalendar ╰─ $ cd build/lib
╭─ andre@zomg ~/work/ccs-pycalendar/build/lib ╰─ $ python pycalendar/validator.py /Users/andre/Desktop/Server\ Staff.ics No problems
I tried this, but was getting "ImportError: No module named pycalendar.icalendar.calendar”
Could I perhaps send you the body text under separate cover?
Yeah, email it to me directly (sanitized if needed).
Will do. Thanks for this André, I really appreciate it!
Also, any thoughts on the issue I described below?
Also a related question. Last week I used the Mac Calendar.app to log into the boss’s account to help him configure some delegation permissions in the app’s preferences, and discovered that a number of emails were sent under my personal email declining invitations. Here is an example:
Ian Baker has declined your invitation to the event: Lunch au bureau, scheduled for January 26, 2017 at 12:00 PM (America/Toronto (EDT) offset -14400 (Daylight)).
I personally was not invited to these events, but the boss was, and he already declined the invitation back in January (according to him).
I don’t understand why these emails were sent. Is this expected behaviour? And if so, is there any way to prevent these from going out?
I have some vague memory of this problem of sending notifications about past events, but I couldn't find a bug specifically about late *email* notifications.
It is possible that your boss went through the correct motions to decline the events, but that didn't actually happen server-side (e.g. iOS clients are generally not awesome at allowing you to know if your changes are hitting the server). To possibly corroborate this, you could look for PUTs / DELETEs of items in your boss' CalDAV inbox, in calendar server's access.log. Even if your boss' declines never processed, it's still a bug to send emails about past events. What versions of everything are you and your boss using?
I am using macOS 10.12.5 Boss is using macOS 10.11.6, and iPhone 10.3.1 Server is macOs 10.11.6, and Server.app 5.2 Just a thought, if, the next time I have to do something like this, I use a freshly created user that doesn’t have mail configured - might this avoid the erroneous outbound notifications? TIA Ian
participants (2)
-
Andre LaBranche
-
Ian Baker