9

I am trying to subscribe to an ical feed through Yahoo Calendar using a URL in the following format: https://calendar.yahoo.com/subscribe?ics={__ICS_FEED_URL__}&name={__NAME__}. After accessing that URL, Yahoo presents me with a dialog box pre-populated with the URL to the feed and the name. After hitting "OK" a dialog box follows soon after with a 500 error.

Digging around in Chrome Console reveals the following message in the Chrome Console from the call used by Yahoo to subscribe to the calendar: {"calendarError":{"lang":"en-US","description":"Failed to create new folder","detail":"Not Applicable","code":0}}.

Example ical feed

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Lanzar Group//SendCalendar//EN
NAME:Sample: Walking Tours
X-WR-CALNAME:Sample: Walking Tours
BEGIN:VEVENT
UID:MKq2333pN8zH6RCeC@sendcalendar.com
SEQUENCE:0
DTSTAMP:20160829T062543Z
DTSTART:20160901T100000Z
DTEND:20160901T120000Z
SUMMARY:Sample Event: Visiting the Eiffel Tower
LOCATION:Champ de Mars\, 5 Avenue Anatole France\, 75007 Paris\, France
DESCRIPTION:The Eiffel Tower is one of the most recognizable buildings in the world\, so of course it is an important part of any trip to Paris. Since its completion over 100 years ago\, it has become a symbol of Paris. Although it is no longer the tallest building in the world\, a title it held for 41 years. it still dominates the skyline of the City of Lights. It’s also very popular\, here are some tips for making your visit go smoothly.
ORGANIZER;CN="John Doe":mailto:john.doe@example.com
END:VEVENT
END:VCALENDAR

Example HTTP response headers for the above feed

Server: nginx/1.11.3
Date: Mon, 29 Aug 2016 06:28:06 GMT
Content-Type: text/calendar; charset=utf-8
Connection: keep-alive
Cache-Control: no-store
Pragma: no-cache
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Content-Disposition: attachment; filename=sample-walking-tours.ics
Vary: Accept-Encoding
Strict-Transport-Security: max-age=31536000

URL to reproduce the problem

https://calendar.yahoo.com/subscribe?ics=https://staging.sendcalendar.com/api/calendar/NZQdHTbmX88cFsm8K/icalfeed&name=Sample:%20Walking%20Tours

What is the cause of this problem? More importantly, what do I need to change to solve it? I have found no documentation online, and have not seen any similar reports of this issue.

bjornl
  • 1,757
  • 3
  • 17
  • 29
  • Did you manage to solve this? I have the same problem. – Frexuz Sep 17 '16 at 11:52
  • 1
    No, not yet. But it seems AddEvent.com has managed to successfully solve this problem, so one approach would be to simply replicate what they have. Compare HTTP headers, protocols, response times, and payload to what they have. That should solve it. Better yet would obviously be to understand what the problem is and not waste time doing any of the above. – bjornl Sep 18 '16 at 05:54
  • Started a 2nd bounty. Will hopefully be quicker to tap into the community's knowledge rather than replicating AddEvent. – bjornl Sep 20 '16 at 06:21
  • @bjornl still looking for a solution? – norcal johnny Sep 27 '16 at 01:50
  • Yes Johnny, Thanks for your response. However, it is not addressing my problem. – bjornl Sep 27 '16 at 04:43

2 Answers2

0

Since we don't have any answers solving this problem I will post my own strategy for solving this, as we have nothing else to go on at this point (taken from my comment above)

AddEvent.com is providing a service that lets users subscribe to arbitrary calendars using Yahoo Calendar, and thus have already solved this problem. By making sure that ...

  • We use the same transfer protocol as AddEvent (HTTP vs HTTPS),
  • We respond using the same, or similar, HTTP headers as AddEvent,
  • We have the same set of fields in our ICS payload as AddEvent

... we should be able to solve this problem for ourselves. I will edit this answer again once we have done so to report my findings.

bjornl
  • 1,757
  • 3
  • 17
  • 29
-1

Based on new knowledge:

The OP wants to subscribe to an external calendar feed into his Yahoo calendar.

I confirmed this method and was able to subscribe. Using the full address and not replacing the https resulted in the exact error you mentioned in your OP.

  1. Go to you Yahoo calendar
  2. In the left frame, hover over Others, click on the gear icon that comes up.
  3. Select Follow other Calendars
  4. Enter link

In this case your link should have looked like this, instead of using the https protocol.

webcal://staging.sendcalendar.com/api/calendar/NZQdHTbmX88cFsm8K/icalfeed
norcal johnny
  • 2,050
  • 2
  • 13
  • 17
  • Thanks @norcaljohnny but that's not what the problem is. You are describing how to add a single event to a yahoo calendar - that works fine. What I am trying to accomplish is to subscribe to an entire calendar through Yahoo. I.e. ICS feed on my domain => Subscribe through Yahoo Calendar. – bjornl Sep 27 '16 at 04:42
  • Actually I gave you all options, Add to Calendar being the last one. Refer to codes below "Your links should both look similar to this". The top one is "View Calendar" and the other is "Subscribe" and the proper method is downloading the ICS files, double clicking it to subscribe via user's calendar. I will add a fully functional JsFiddle demo so you can see it run. – norcal johnny Sep 27 '16 at 04:52
  • @bjornl, sorry net had problems. Please update at top. It is view calendar and subscribe current methods. – norcal johnny Sep 27 '16 at 05:49
  • thanks for the updated reply, but this is still not what I am trying to do. I am trying to take an ICS feed from an external non-yahoo URL (such as in my example above), and add it to Yahoo Calendar. E.g. I would like my http://example.com/my-calendar.ics to appear inside my Yahoo Calendar account. You're doing the opposite, exporting an ICS feed from within Yahoo. – bjornl Sep 28 '16 at 08:29
  • @bjornl Well then that makes a huge difference. The link you provided only shows a person trying to log into a calendar and subscribe to it. I will update my answer given the new understanding. – norcal johnny Sep 28 '16 at 08:32
  • @bjornl answer updated. I confirmed this method and was able to subscribe. Using the full address and not replacing the https resulted in the exact error you mentioned in your OP. – norcal johnny Sep 28 '16 at 09:11
  • it's still not what I am trying to accomplish. It's important that I use a URL, or similar, as outlined in my question above, as that allows me to have a button on any website pointing to the URL, letting users press a button to immediately add a foreign calendar feed to their Yahoo account. Again, check AddEvent.com for a working example implementation. – bjornl Oct 14 '16 at 11:40