Are there differences between ics files for Apple and MIcrosoft? - icalendar

I am creating an html form that accepts calendar event inputs, and returns an ics file. Are there any parameters of an ics file that are different between Apple and Microsoft devices?

Welcome to Stack.
No, no platform specific parameters are required to be provided to be read by an external platform. Of course if you mean parameters to URL, you can offer what you want - they become part of the URL for that ics calendar feed.
If you producing an ics file then you should familiarise yourself with https://www.rfc-editor.org/rfc/rfc5545 or https://icalendar.org/RFC-Specifications/iCalendar-RFC-5545/. The RFC 5545 ics specification is platform agnostic. It allows for private non-standard properties which can be (usually are) platform specific See
https://www.rfc-editor.org/rfc/rfc5545#section-3.8.8.2
https://en.wikipedia.org/wiki/ICalendar#Calendar_extensions
Apple of course has the unofficial uri webcal. See https://en.wikipedia.org/wiki/Webcal. It is not necessary to offer that. Apple does handle the standard http/s protocol with Mime type text/calendar and suffix .ics.

Related

Do ICS files contain any info about online meetings?

In my application I need to understand if the ICS file represents an online meeting (Teams, Meet, Zoom...) or not.
I read the RFC5545 standard docs, but I couldn't find any specific standard attribute. I also analyzed the content of some online events created inside Google Calendar or Microsoft Teams and found out that Google puts a custom string
X-GOOGLE-CONFERENCE:your-meeting-link
while Microsoft specifies this info in the LOCATION attribute like "Teams meeting".
Is there anything standard across multiple providers? Is there any discussion about this to be done in the future?

Multiple calendars in one ics file

I have a website that has resource data that can be exported as calendars ( .ics files). It is an internal website and so the users will likely be loading them into Outlook 2013 so that they can cross reference the resource data with their own calendars.
I have run into the challenge that users can easily export multiple sets of data in one go resulting in multiple calendars being available to be download (the common worst case being 12 calendars, but there are going to be a few users who will push it well beyond that). I can easily zip the ics files up and provide the zip as a single download, but my goal is to keep it at simple to use as possible for the user to import into Outlook. From the research I have done and my own tests I have not found any way for .ics to have multiple calendars in one file. As such here is my chain of questions:
Does icalendar have a way of storing multiple calendars in a single file?
If not is there a different calendar file format that Outlook 2013 can import and parse that does support multiple calendars?
If there is no better calendar file type for this, is there a general best practice for providing multiple calendar files for download and import?
I'm not sure exactly what you mean when you say "calendar", but, to expand on #jgm's answer, the specification allows more than one VCALENDAR component to exist inside of the same file.
BEGIN:VCALENDAR
...
END:VCALENDAR
BEGIN:VCALENDAR
...
END:VCALENDAR
According to the specification you can have multiple calendars in a single iCalendar entry:
The Calendaring and Scheduling Core Object is a collection of
calendaring and scheduling information. Typically, this information
will consist of an iCalendar stream with a single iCalendar object.
However, multiple iCalendar objects can be sequentially grouped
together in an iCalendar stream.
However, you would have to test each client individually to see if it was supported as this is not a common situation.
No. The iCalendar format has no notion of calendar "containers". The closest would be to use the CATEGORY property to distinguish between different types of events.
If you really only care about Outlook, the alternative would be to create PST files, which can contain arbitrary hierarchies. But generating those is much more involved in terms of development.

How do I update the content of my app without releasing another version?

I have an app that basically has news and updates about a certain subject. How do I get it to work that when I update something let's say in my website it would also update what's on the app. Do I usee RSS for this?
You need some web service to deliver the data. In terms of what format a web service can use, there are a variety, but two prevalent formats are XML and JSON. RSS is, essentially, a particular form of XML.
On the iOS side, you can parse XML using NSXMLParser (see NSXML Parser Class Reference). If you're parsing JSON, you can use NSJSONSerialization (see NSJSONSerialization Class Referece). For both of these, you can google the class keyword followed by "example" or "demonstration" (e.g., "NSXMLParser example" or "NSJSONSerialization demonstration") and you'll see tons of examples. If you have an RSS feed, you can google something like "iOS RSS example".
It may be dictated by what you can easily render from your server, XML (or, in particular, RSS) or JSON. For example, if you're using some content management system on your web site, it might offer RSS feeds, or something like that. In the absence of that, you may have to write your own server interface to retrieve the data in XML (or RSS) or JSON formats.
In addition to #Rob answer I would point couple mode things:
You can simply prepare databases with your information (like SQLite) and just download them from your web site to your application.
You need to have some way of notifying application about new content and for that you might want to use remote notifications. http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html - this way you can send notify messages to your app, and user will know that there is something new to download and read.

Which event data format should use?

I have an application that (among other features) has an event calendar. Some users need to export and import event data to their own calendars. I've found the iCalendar format, but I don't know if that's the most suitable format for me.
The format should be an extended format (as much as possible to reach the maximum number of users), particularly it must be a format that allows import/export of iPhone and Android calendars (the built in calendars).
The event data itself is very basic (name, description, start and length).
Is there any format that fits these requirements? Is there any way to make an iPhone/Android phone to import/export events in the iCalendar format?
Yes iCalendar is the standard that you are looking for (for more information you can go to http://calconnect.org/ )
regarding exports:
iCalendar is a standard that is based on apple calendar sor iPhone is compatible with icalendar and since this is the de-facto standard for calendaring so is Android compatible.

CMS for managing plain-text content, with tagging

We have some quite-specific requirements for our app that a CMS may help us with, and were hoping that someone may know of a CMS that matches these requirements (it's quite a laborous task to download each CMS and verify this manually).
We want a CMS to allow users to create and manage articles, but storing the articles in plain-text only. All of the CMSs that we have looked at so far are geared towards creating HTML pages. We want the CMS to manage workflow (approval process), and tracking of history.
The requirements for plain text only is that the intent is to allow business people to generate content which we are going to display in our Silverlight application - we don't want to go down the route of hosting and displaying arbitrary HTML in the app as we want the styling to be seamless with our app, amongst other reasons.
We would also want to allow the user to be able to link to media stored on the server, but not to external sites (i.e. HTML with no formatting, or some other way of specifying article links), and the third requirement is the ability to tag articles and search on articles.
Does anyone know of any non-HTML targetted CMS systems that may match these requirements?
I would expect several CMS systems to allow this, but eZ Publish stores content as plain XML. And you have a way of allowing certain tags if you wish; and explicitly prevent for example external links. You then have options for how to present that content according the templates you choose to use.
You also have control via a /layout/set/myLayout directive.
You could for example retrieve the content as a plain xml feed or a print layout or whatever custom format you choose at the time. With appropriate headers.
http://doc.ez.no/eZ-Publish/Technical-manual/3.10/Reference/Modules/layout/(language)/eng-GB
vs.
http://doc.ez.no/layout/set/print/eZ-Publish/Technical-manual/3.10/Reference/Modules/layout/(language)/eng-GB
You could define a layout such as /layout/set/xml/....
Workflow as in content approval processes, versioning, tagging and search are standard.
You can give Statamic a try.
http://statamic.com/
Not sure if you can disallow external links, though.