In a promotional email, I have added links to create an event on Google Calendar and iCal (iOS calendar). I found out that I can create the Google Calendar event using the following URL format
http://www.google.com/calendar/event?action=TEMPLATE&dates=20200515T000000Z/20200515T010000Z&location=My_Location&trp=false&text=Event_Title&details=Event_Details
Is there a way to create the Calendar event on iCal or iCloud using a URL and passing data via query string parameters?
As #jescanellas mentioned, I don't think that's possible, but you can send an .ics file containing info for that event in an email. Upon clicking on the file it'd be added to users iOs Calendar.
Example event:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:19970610T172345Z-AF23B2#example.com
DTSTAMP:19970610T172345Z
DTSTART:19970714T170000Z
DTEND:19970715T040000Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR
You can find more about it here RFC 5545.
Related
On iOS, you can create reminders with a URL (https://www.example.com/example.php?key=value) attacted to it (open any web page, open share dialog, tap reminders app).
It syncs correctly between devices (with the full URL), however on my CalDAV server, the To-Do is stored as
BEGIN:VCALENDAR
PRODID:Open-Xchange
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VTODO
DTSTAMP:20200622T134803Z
SUMMARY:Example Reminder
DESCRIPTION:www.example.com
CLASS:PUBLIC
STATUS:NEEDS-ACTION
UID:A0F91D70-6F05-4D91-934A-7E7990B873D5
CREATED:20200622T134404Z
LAST-MODIFIED:20200622T134738Z
END:VTODO
END:VCALENDAR
meaning there is no component to store the full URL (the description is only the host and doesn't contain the full request URL).
How can I include the URL so that iOS understands it when creating reminders on the server side?
RFC 5545 has an URL: component that iOS doesn't interpret.
i have added UTM parameter using FIRDynamicLinkGoogleAnalyticsParameters
FIRDynamicLinkGoogleAnalyticsParameters *analyticsParams =
[FIRDynamicLinkGoogleAnalyticsParameters parametersWithSource:Source
medium:Medium
campaign:Campaign];
analyticsParams.term = Term;
analyticsParams.content = Content;
components.analyticsParameters = analyticsParams;
Now i want to track the dynamic link like this,
if i have shared on Facebook, any one tap on that link then it will go to application if there else it will go to App Store.
After i need to show message based upon it’s source i.e welcome from Facebook like message.
So can we track dynamic link and check from where the link has been tapped and show relevant message based upon i’t source.
Can anyone explain how to implement this:
https://firebase.google.com/docs/dynamic-links/analytics
By adding these tracking parameters to your Dynamic Links, Google
Analytics and iTunes Connect can treat them like any other campaign
it's measuring attribution reporting for, and you can view conversion
events not just by the ad campaigns responsible for bringing in those
users, but also by which Dynamic Links might have brought them in.
The following parameters are passed to Google Analytics: utm_source,
utm_medium, utm_campaign, utm_term, utm_content, gclid
The following parameters are passed to the App Store: at, ct, mt, pt
The same question was asked in this thread:
App link tracking with Firebase
Also I had posted this question on Firebase GitHub and got the reply:
https://github.com/firebase/firebase-ios-sdk/issues/4775
You can't track where the link was tapped from unless you create a
custom link (or add custom parameters) for each source, but even then
this will result in mismatches if a user ever copies a link and shares
it to a different source.
I have written an iPhone App that looks at a webpage. (I have authorized the App to access Calendar.) One of the links is a calendar link. When I look at that link with Safari, I get a message.
https://www.dropbox.com/s/opzhxcrg8ye2z4v/Screen%20Shot%202018-11-23%20at%201.17.15%20PM.png?dl=0
"The website is trying to show you a calendar invite. Do you want to allow it ...". I can then add it to my calendar. However, when I open that identical link inside my app, my app does not recognize it is a calendar link and then I get options to either Open, Add to Read List, copy ...".
https://www.dropbox.com/s/wd7n8n9bz764wih/Screenshot%202018-11-23%2013.20.53.png?dl=0
My question is how to get my App to recognize that a link is a calendar link?
One determines what should be in the file by the suffix and the MIME content type.
For icalendars, the suffix is .ics and the MIME content type is text/calendar. If a link does not have .ics suffix your app can ignore it, if it has a .ics, then it should check the header for the mime-type.
What is a MIME type?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
What a browser or device actually does with the file depends on what the user has set in the settings. EG: a .pdf will topen in the way that the user has told the browser to open .pdf's - either in browser or adobe reader.
EG in windows for development purposes, I have specified that calendar links (links with suffix .ics) should be opened in my editor rather than my calendar.
I have a PHP script I've setup to generate an .ics file and email it to a person. The generated ics file works as intended in Microsoft Outlook 2010 but not on iOS devices. When the calendar event is launched in Outlook, the user is asked whether to accept or decline the event however when the user launches the same ics file on their iPhone, iOS only offers them to "Add to Calendar."
How can I force or make iOS ask the user to accept or decline the event?
Here's my mocked up ics file:
BEGIN:VCALENDAR
METHOD:REQUEST
VERSION:2.0
PRODID:-//TEST INC//TEST//EN
BEGIN:VEVENT
DTSTAMP:1402101843
SEQUENCE:0
UID:539236231203d
ORGANIZER:MAILTO:test#blahblah.com
ATTENDEE;RSVP=TRUE:mailto:test#blahblah.com
DTSTART;VALUE=DATE:20140612
DTEND;VALUE=DATE:20140613
CATEGORIES:MEETING
CLASS:PUBLIC
SUMMARY:Meeting Test
DESCRIPTION:Test
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 3.2//EN"">
<html><body><b>Test</b>
</body></html>
END:VEVENT
END:VCALENDAR
I guess I'm missing something in my ics file to communicate with Apple's standards?
I looked over at iCalendar .ics accept/decline on iOS but no solution was found.
Thanks!
I had this same issue (Outlook has Accept/Decline but iOS doesn't) and was able to fix it by adding the ORGANIZER line. It appears your syntax may be wrong. You have a colon after ORGANIZER instead of a semicolon. You may also need to fix the capitalization of mailto (should be MAILTO) in the ATTENDEE line.
Is it possible to launch any of the apps I made directly from the calendar?
If I have a particular entry in my calendar can I link it to an app?
No it is not.
But as CodaFi stated, you could try to implement custom URL schemes in your app and note the appropriate url in the calendar event.
Update:
No, it doesn't work even with the url inside the calendar event because it doesn't recognizes it as a link.
Update 2:
I've found a question with the same problem. Sadly it's not working for me, but i can test it only on iOS6 and it may be broken there.
Yes you can. The app you want to use needs to support URL schema. You must have some text after the schema:// though for Calendar to recognise. It works fine ios4+ (inc 6).
E.g. For Facebook profile you could use fb://me and it will load. Fb:// won't work.
You can open a custom URL Scheme from inside the calendar app with 1 large caveat. The calendar app only recognizes URL schemes that were registered BEFORE the calendar was opened. Meaning if your calendar is open when you install your app, the calendar will not recognize the URL scheme as a valid URL.