ICS or iCal is a calendar file used by several email clients and programs like Google Calendar, Microsoft Outlook, Apple Calendar, etc. It is a universal calendar format. ICS File is used for sending meeting requests to other users who can import the events to their own calendars.
iCalendar allows users to share events, date/time, and free/busy information via emails. It is a self-dependent file format. Web servers can transport iCalendar information and web pages can contain iCalendar data in embedded form using iCalendar.
Brief History
iCalendar was first created in 1998 by Internet Engineering Task Force as a standard (RFC 2445). In 2009, the standard was refined ad RFC 5545 where new features were added and older ones are deleted from it. In 2016, RFC 7986 was released and augmented to the original iCalendar RFC. In RFC 7986, new characteristics to main vCalendar object and other supportive features were introduced.
ICS file is saved in a plain text format containing information such as title, summary, start time, end time for the calendar event. By default, iCalendar use UTF-8 character set that is specified using “charset” MIME parameter.
Technical Specifications
Core Object
The top-level element in the calendar is Calendaring and Scheduling Core Object. It is a collection of calendar and scheduling information. Single iCalendar object is contained by this information. However, multiple iCalendar objects can be grouped together.
The first line should be Begin: VCalendar and the last line should be End:VCalendar. The content between these lines is known as icalbody.
The body of the iCalendar object is made of a list of calendar properties and one or more calendar components.
Events
VEVENT describes an event that has a scheduled amount of time on a calendar. Usually, when a user accepts the calendar event, this will cause that time to be considered busy. A VEVENT includes a VALARM that allows an alarm.
A VALARM Code (reminder 1 day before)
BEGIN: VALARM
TRIGGER : PT1440M
ACTION : DISPLAY
DESCRIPTION : Reminder
END : VALARM
VEVENT is also used for calendar events without a specific time such as daily reminders, anniversaries, etc.