Task 'Internet Calendar Subscriptions' reported error (0x000710D2) : 'The VEVENT, "...", defined near line ..., contains a recurrence pattern that has no instances.'
So I downloaded the ICS (via the URL you had to enter when configuring the synchronization between Outlook and Google Calendar) and looked at the VEVENT at the specified line. There I found the name of the event and went to Google Calender to delete the problematic event. Alas, bummer: the search did not show up the event. Nor did scrolling through the calendar within the date range of the VEVENT.
So instead I made friends with the Google API explorer:
- Go into Outlook account settings, find your internet calendar, and copy the URL address of the calendar.
- Paste that URL into a browser and go. Choose "save" When asked to save or open the file.
- Open the downloaded text file with some application that shows line numbers. Most text editors will do. You might as well use MS Excel.
- Scroll down to the vicinity of the line number cited in the offending error message. Verify that this is the troublemaker, and then find the line starting “UID: “. This is the iCalUID that you will need later.
- Go to the Google Calendar API
- Enable authentication with the OAuth slider on the right. A dialog "Select OAuth 2.0 scopes" pops up. Check both options and click Authorize
- Click calendar.calendarList.list and then Execute on the following page. Below the Execute button, two headlines Request and Response. If the Response is 401 Unauthorized, the previous step has failed. Try again. Otherwise you get a list of your calendars with each entry starting like this:
{ "kind": "calendar#calendarListEntry", "etag": ... "id": "THIS IS THE ID OF THE CALENDAR", "summary": "THIS IS THE NAME OF THE CALENDAR",
Put down the ID of the calendar. The ID of your main calendar seems to be identical with your email address. - Use calendar.events.list with the calendar ID and the iCalUID from the ICS. You should get only a single entry like this:
{ "kind": "calendar#event", "etag": ... "id": "THE ID THAT WE NEED", "status": "confirmed", ... "summary": "THIS IS THE NAME OF THE EVENT", ...
Put down the ID of the event. This ID seems to be just the same as the one in the ICS without @google.com at the. Just specifying the calendar ID should show up ALL events, but the problematic event showed up only if you specified its iCalUID. - Use calendar.events.delete with the calendar ID and event ID to delete the event. Problem solved!
In hindsight, you may as well go directly to calendar.events.delete and use your email address for calendarId and the ID from the ICS without @google.com for eventId. But no guarantee.
Now this was really fun. Felt a little like debugging sendmail via telnet on 25.
Update on May 28th 2014 because authorizaton changed and more explicit steps were requested.
Update on July 15th 2014: more details how to get the iCalUID. Thanks to Linda Stoutenburgh!