Friday, February 21, 2014

Fixing Outlook synchronization issue 0x000710D2 (no instances) when synchronizing Google Calendar

I got annoyed with the following warning whenever Outlook synchronized my Google Calendar: 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:

  1. Go into Outlook account settings, find your internet calendar, and copy the URL address of the calendar.
  2. Paste that URL into a browser and go. Choose "save" When asked to save or open the file.
  3. Open the downloaded text file with some application that shows line numbers. Most text editors will do. You might as well use MS Excel.
  4. 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.
  5. Go to the Google Calendar API
  6. Enable authentication with the OAuth slider on the right. A dialog "Select OAuth 2.0 scopes" pops up. Check both options and click Authorize
  7. 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.
  8. 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.
  9. 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!

22 comments:

  1. It worked. Thanks. Subtle difference on the iCalUID vs. ID, just as you described. Took a couple attempts to realized that.

    Have you encountered a ballooning Internet Calendar Subscription pst file associated with your google calendar before? I have one that will start at less than 1MB and grow beyond 1GB+. Wasn't sure if this was related to the empty VEVENT entries or not. Will monitor now that I've removed the problematic event. Thanks again.

    ReplyDelete
    Replies
    1. I have the same balooning ICS.pst file issue, hoping this fixes it long-term.

      Delete
  2. thank you for posting, this did the trick !

    ReplyDelete
  3. Brilliant! Herzlichen Dank, MK.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. I was so excited to see these instructions, at the prospect of being able to fix this stupid error that has plagued me for months! However, when I entered the iCalUID for each of the problem events, I received the following response:

    {
    "kind": "calendar#events",
    "etag": "\"2P51478ogOpU1KCwGtKZ5NrhIGI/nC5RUe1kp6Sf1qn4cv_fZrgXia4\"",
    "summary": "[user_name]@gmail.com",
    "updated": "2014-04-17T19:14:45.149Z",
    "timeZone": "America/New_York",
    "accessRole": "owner",
    "items": [
    ]
    }

    There is no event ID!

    Any ideas?? Any help would be greatly appreciated!

    ReplyDelete
    Replies
    1. The Calendar API returned an empty list without any events. Either you've been hit by another problem or there is some error in the request you submitted to get the above result.

      Delete
  6. Thanks for posting this. Nice to see a solution to this problem!

    ReplyDelete
  7. Can't get past "3. Use calendar.calendarList.list to list all your calendars".
    When I went through your procedure and get to the calendar.calendarList.list I don't get a list of my calendars but a menu with things like:
    Services > Calendar API v3 > calendar.calendarList.list
    maxResults
    minAccessRole
    .
    .
    .
    .Execute

    I must be doing something wrong. Suggestions appreciated.
    I'm not a web prgrammer

    ReplyDelete
    Replies
    1. You can leave all the fields empty in this step and just click submit. In the following steps, you have to fill in the fields as described in my post. HTH

      Delete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Is it possible to be very explicit with these directions for those of us not familiar with web programming? I'm desperate to fix this error. I found your page in my quest. I'm having a hard time navigating Calendar API. For example, how do you know the iCalUID for the problem event?
    Directions for lay people would be so nice.

    ReplyDelete
    Replies
    1. I made the directions more explicit. Hope this helps. The iCalUID is the very long, cryptic ID in the ICS file.

      Delete
    2. Finding the iCalUID can be confusing if you didn't previously download and open the calendar file (outside or Outlook) in your attempts to fix this annoying error. Here's how to find the iCalUID for step 4:
      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. Get a message to save or open. I chose save, then go to the file and right click and “open with” and 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 cited in step 4 of the instructions.
      Continue following instructions as indicated.

      Mr. Kraaz - thank you from the bottom of my heart for sharing this solution! An entire year I had been plagued by this error.

      Delete
  10. This worked PERFECTLY! Thanks for solving an annoying problem!

    ReplyDelete
  11. Thank you so much!!!
    Got this problem for months and didnt find any solution 'til now!

    ReplyDelete
  12. It worked great. Thanks so much!

    ReplyDelete
  13. thanks for the help; finally ditched two error messages i've been getting for over a year!

    thank you, thank you, thank you!

    ReplyDelete
  14. Thank you so much! This has been a problem for me for over a year and it's finally resolved. Thanks again!

    ReplyDelete
  15. This worked perfectly. Thank you so much for your electronic detective work!

    ReplyDelete
  16. Thank you for sharing this blog with us. This is quite helpful for us. For more information to this visit at How to setup Outlook

    ReplyDelete