I am developing a web application which dynamically distributes several .ics files on the web space. So now I am trying to observe those .ics files from mail clients like macOS calendar app, Outlook or Google calendar. Everything works simply perfect with all except Google calendar:
If I am trying to import the calendar from an URL (here) I just get displayed 'busy' as subject for each event (example). This is a weird problem because it works like charm in all other apps. It also works fine if I download the current .ics file and import it statically. (So this can not be only an .ics content problem)
Well, I already checked out several related issues/questions (see bottom) but none provided a capable/correct solution.
Interesting to mention (the last related question brought me to this):
It works if I rearrange the paths and names to the following:
https://myurl.net/calendar.ics
It does not work if I use some of the following patterns:
https://myurl.net/ccalendar.ics
https://myurl.net/foo/calendar.ics
I also posted this problem in Googles calendar forums but the recommended to post something here.
Thanks for your help in advance!
Regards
Related:
my web ical url does not work in google calendar
iCalendar events imported in Google Calendar are empty
Events from iCal Feed URL Display as "Busy" in Google Calendar
Try the provided solution in this SO post:
The calendar's URL that I provided GCal did not end in a filename (I
use a PHP framework with URL rewriting). I updated the URL, appending
"/calendar.ics" to it and subscribed to the URL in GCal, and now all
events seem to display fine, showing all details.
After some experiments I decided to use an ICS validator found on google. It displayed that the MIME-Type of the URLs result may be misconfigured (text/plain should be text/calendar).
I already noticed this while accessing URLs like https://myurl.net/foo/bar.ics and seeing plain .ics file content instead of downloading this file. This seems to depend on the browser, some browsers auto interpret this type correctly but Google seems to do not.
However: There's a configuration file named web.xml in my applications WEB-INF. I defined the MIME-Type manually for files ending with *.ics:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
...
<mime-mapping>
<extension>ics</extension>
<mime-type>text/calendar</mime-type>
</mime-mapping>
</web-app>
Now even Google Calendar recognizes the whole calendar content independent from the URL it was distributed from.
EDIT:
Okay after intense testing there orruced no more problems with any calendar so this seems to be the solution in my case. Outlook, macOS calendar app and Mozilla Thunderbird seem to guess the MIME-Type correctly, Google does not.
Related
I have a personal project which consumes my free time and effort for about a year without significant profit. I have problems with it appearance in Google and would really appreciate to get help here.
This project (http://yuppi.com.ua - similar to craiglist in US) is WEB-based AngularJS 1.2 application that uses PHP rest API hosted on GoDaddy. And in order to make this application popular it have to be very visible in internet and very searchable in Google and users have to be able to share pages via social networks or skype.
According to Google specification, google crawlers doesn't run javascript to get content of a web page before index, so I've added _escaped_fragment_ page that displays content of web page without javascript. For example:
Page: http://yuppi.com.ua/#!/items/sub/18/_
Dirty : yuppi.com.ua/?_escaped_fragment_=/items/sub/18/_
This dirty page will be redirected here where google will see content.
http://yuppi.com.ua/server/crawler_proxy/routee.php?path=/items/sub/18/
So basically I have two versions on HTML file for that page. One version is the one that available to users, which has styles, a lot more HTML tags etc. And the second is the version for Google crawler - very light-weight without any styles. And I am expecting to see clean link to my site in Google, not dirty.
So, If to search all links to a web site in Google you will see that one of the links displays it's "dirty" state.
Another problem is sharing links in Skype.
When I send a link to someone, I am expecting that this link will be transformed to thumbnail image but it is not happens. Instead I see ungly link to my web site.
Please help me to understand how to make happy everyone: users, google crawler, GoDaddy and me.
I was encountering the same problems last year with a big project and we ended to use : https://prerender.io/.
It's a prerendering system that work with a phantomjs browser to detect bot request and render a full html template. It does also instanciate a cache service to not render again a template that haven't change.
Hope it help's.
I am trying to create buttons on a web page that allow users to share links to PDF documents on LinkedIn. LinkedIn loads a window without any errors but offers no link or preview of the PDF or any indication of what is being shared.
Here are the two methods I have tried. First the plugin method.
<script type="in/share" data-url="http://example.net/DocumentDownload.aspx?Command=Core_Download&entryID=114"></script>
And, secondly with a custom url.
TEST
Encoding the url makes no difference.
The above links are direct document links from a DNN web site using Document Exchange. If I change the urls to any html page it works fine and LinkedIn seems to be able to extract the useful information right from the page and use that for the share details.
Can LinkedIn handle this kind of thing? There is nothing to guide me on the type of links that can be shared. I can't find any information about it. There are no errors in the web console.
Not sure, but you should try to provide LinkedIn with the link that has .pdf at the end, like http://example.com/documents/file1.pdf. I guess LinkedIn just checks the URL if it has .pdf file at the end to decide if it is a PDF document or not.
I have no problem sharing pdf's on LinkedIn. Check it out...
https://www.linkedin.com/sharing/share-offsite/?url=https://www.revoltlib.com/anarchism/the-conquest-of-bread/view.pdf
Works perfectly fine. And view.pdf is a script, not a file, either, so, it's not looking for a PDF file to analyze, so much as headers that indicate you have a PDF file available to analyze, so, in PHP, at DocumentDownload.aspx, we would do...
header('Content-type: application/pdf; charset=utf-8');
This header let's the sharing app know that it can analyze the document as a PDF file and extract useful information from it, as you can see from the screen shot.
Ok, somehow I am serving ads in my NodeJS / AngularJS application, but I haven't include this myself.
There's some package or included link sending ads to the client, but the ads are not visible, and the adserve url changes with every request. (The url that can be seen in the screenshot below)
How do I find out which place in my application serves these ads?
PS: I am sure this doesn't come from my local dev pc, my other collegues have this issue as well.
A quick trick may be to search for the url in every files of your repository. If you use a cdn to load your librairies, try to look inside also (you can do that directly in chrome dev tool with ctrl/cmd f in the sources tab).
Hope it will help !
The "adserver" in my project turns out to be a tracking / analytics beacon included by the Realtime.co framework.
Thankfully, the author responded to my email very quickly, and they also provide a beacon-free version of their framework. So problem solved :)
I have a calendar app for which I provide subscriptions by linking client using the "webcal://" protocol. It's working quite nicely. What I'd like to know is if there is a way title it in the receiving calendar application, such as Outlook, iPhone, Google, etc?
Currently, when loaded into Outlook it is displayed as the name of the web script from which it came. For instance if the script is (using ColdFusion) Create_ICS_File.cfm then Outlook shows it as "Create_ICS_File in Internet Calendars".
On the iPhone it shows up in Calendar as the full web address including URL variables. For example: mywebsite.com/Create_ICS_File.cfm?calid=4329-32
Is the a way, in the ICS file or otherwise, to set a title on these subscriptions?
Using the X-WR-CALNAME - The display name of the calendar
should do the trick
See
http://en.wikipedia.org/wiki/ICalendar#Calendar_extensions.
See also
How do I change the display name of an iCalendar in Outlook?
I am trying to fetch URLs using Google App Engine's urlFetch service and implement a proxy site. Sites like Twitter and Facebook appear disfigured as if they are missing the stylesheet, even Google is missing the Google logo but Yahoo opens all fine, I can't understand why.
When you use urlfetch, it fetches the HTML of the page, and none of the images, CSS, JavaScript, or any other resources.
Yahoo looks fine presumably because they specify their images and CSS using absolute URLS (e.g., http://www.yahoo.com/image.png), so when your urlfetch'd page displays, it includes full image URLs from yahoo.com. Keep in mind, when someone doesn't have access to yahoo.com, those images won't appear on your proxied page either.
edit: It looks like Yahoo inlines their CSS into the HTML page itself, which would explain why it works in your fetched copy.
Google appears without CSS/images because their CSS/images are specified as relative URLs (e.g., /image.png), and your proxy doesn't have an image at /image.png
You'll have to parse the urlfetch'ed page content to find images and CSS that need to be fetched and proxied as well. Just be sure to handle relative URLs like /resource.png as well as absolute URLs like www.foo.com/resource.png.