Documentation

What is ICS

Internet Calendaring and Scheduling

ICS is a file format which allows Internet users to share calendar events with other Internet users by sharing files or sending emails. ICS files are often used for sending meeting requests to other users, or for subscribing to holiday or birthday calendars. The files can be opened and imported by various calendar programs, including Microsoft Outlook, Google Calendar, and Apple Calendar.

The ICS file format is specified in RFC 5545, which is the Internet Calendaring and Scheduling Core Object Specification. The format is based on the earlier vCalendar format, which was specified in RFC 2445.

ICS files are plain text files that contain calendar event information. The files can include details such as event descriptions, start and end times, locations, and other information. The files can also include information about recurring events, such as weekly meetings or monthly birthdays, and for TeamCalendar.com, sports schedules.

Because ics is a simple text file, it's also pretty easy to read. Here is what a sample isc entry looks like. This is what TeamCalendar is delivering to your calendar application.

BEGIN:VEVENT
                    UID:9b950757-21e5-4443-afde-8faafdc58101@TeamCalendar.com
                    DTSTAMP:20240317T024915Z
                    SUMMARY:⚾️ Arizona Diamondbacks host St. Louis Cardinals
                    DESCRIPTION:\nhttps://TeamCalendar.com/app/T9qgt4MERu Use this link to Add or Remove team schedules from your TeamCalendar.\n\nThank you for using Te amCalendar.com! If you like our calendar service\, please consider sharing with your friends.
                    LOCATION:Chase Field: Phoenix\, AZ USA
                    DTSTART:20240413T014000Z
                    DTEND:20240413T044000Z
                    GEO:33.445278;-112.066944
                    X-APPLE-STRUCTURED-LOCATION;VALUE=URI;
                    X-ADDRESS=Chase Field: Phoenix\, AZ USA;
                    X-APPLE-RADIUS=72;
                    X-TITLE=Chase Field:geo:33.445278,-112.066944
                    CREATED:20240317T024915Z
                    LAST-MODIFIED:20240331T182349Z
                    BEGIN:VALARM
                    ACTION:DISPLAY
                    DESCRIPTION:⚾️ Diamondbacks host St. Louis Cardinals starts in one hour
                    TRIGGER:-PT60M
                    END:VALARM
                    END:VEVENT

The text file is pretty easy to figure out if you read it top to bottom.

  • BEGIN:VEVENT - This is the start of a new event
  • UID - This is a unique identifier for the event
  • DTSTAMP - This is the date and time the event was created
  • SUMMARY - This is the title of the event
  • DESCRIPTION - This is a description of the event
  • LOCATION - This is the location of the event
  • DTSTART - This is the start date and time of the event. For timezone support TeamCalendar published all dates and times in Universal Time Coordinated (also known as UTC). Then Google or outlook converts this to your current time zone. This is very helpful, especially when traveling and your calendar changes Time Zone automatically.
  • DTEND - This is the end date and time of the event. TeamCalendar doesn't know the end time of an event until it's over, so to populate your calendar we default to the avg match time, based on the league of the calendar time.
  • GEO - This is the geolocation of the event. Very helpful for driving directions without an exact street address. Helpful for international events where street addresses are formatted (or missing). Driving Directions ( Apple Maps, Google Maps, Waze, etc all know how to navigate based on GPS coordinates.
  • X-APPLE-STRUCTURED-LOCATION - This is the structured location of the event
  • CREATED - This is the date and time the event was created - used internally by TeamCalendar
  • LAST-MODIFIED - This is the date and time the event was last modified - used internally by TeamCalendar. We update this whe the event changes which tells Google/Microsoft/Apple that the event has been updated.
  • BEGIN:VALARM - This is the start of a new alarm
  • ACTION - This is the action of the alarm
  • DESCRIPTION - This is the description of the alarm
  • TRIGGER - This is the trigger of the alarm
  • END:VALARM - This is the end of the alarm
  • END:VEVENT - This is the end of the event

More Articles