On May 31, 2017, at 10:09 AM, Ian Baker <ibaker@eem.ca> wrote:

Thanks Andre, I’ll have a poke at your suggestions and follow-up shortly.

Just wondering - would exporting the entire calendar to a .ics file, deleting the current calendar, then removing the problematic event before importing the .ics file into a new calendar be an option here?

(sorry for the late reply)

It is an option, but shouldn't be needed to fix whatever is wrong.

 Would there be any undesirable side effects of the export/import?

If there are any events with attendees, then yes there would be undesirable side effects. Specifically, attendee status will be reset to 'needs action' upon reimporting the event, which would then send notifications to attendees, etc. This is because you're not allowed to force the attendee status of others.

-dre


Thanks again for your time,

Ian

On May 30, 2017, at 9:46 PM, Andre LaBranche <dre@apple.com> wrote:


On May 29, 2017, at 12:44 PM, Ian Baker <ibaker@eem.ca> wrote:

Just wondering if there are any suggestions about this “You are not authorized to access this resource” issue wjem trying to delete this corrupt event.

Hi,

I guess my next suggestion would be to try doing that kind of curl delete on a newly test event in the same calendar as the problem event. That should validate that this curl approach can work.

If that test succeeds, this suggests there is something about the event itself that is making it not deletable at the HTTP / CalDAV layer. In this case, you could try calendarserver_verify_data's "nuke" option, which supports three different methods for identifying the target.


╭─ andre@zomg ~/work/ccs-calendarserver
╰─ $ ./bin/calendarserver_verify_data --help

Usage: calendarserver_verify_data [options]
Version: 13

This tool scans the calendar store to look for and correct any
problems.

OPTIONS:

Modes of operation:

-h                  : print help and exit.
--ical              : verify iCalendar data.
--mismatch          : verify scheduling state.
--missing           : display orphaned calendar homes - can be used.
                      with either --ical or --mismatch.
--double            : detect double-bookings.
--dark-purge        : purge room/resource events with invalid organizer
--split             : split recurring event
--upgrade           : upgrade iCalendar data.

--nuke PATH|UID|RID : remove specific calendar resources - can
                      only be used by itself. PATH is the full
                      /calendars/__uids__/XXX/YYY/ZZZ.ics object
                      resource path. UID is the iCalendar UID,
                      prefixed with "uid:", of the resources to
                      remove. RID is the SQL DB resource-id.
... [truncated]



-dre