Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iCalendar database schema

Where can I find the iCalendar database schema? The best I can find is the xml schema.

I could use that I suppose but that's a lot of work and I am hoping someone has done it already.

like image 746
richard Avatar asked Jan 02 '15 19:01

richard


People also ask

What is iCal and how does it work?

iCalendar is a standard for calendar data exchange. The standard is sometimes referred to as "iCal", which also is the name of the Apple, Inc. calendar program that provides one of the implementations of the standard. Outlook can subscribe to Internet-based calendars, such as the Google calendar.

What calendars use iCal?

iCalendar is used and supported by many products, including Google Calendar, Apple Calendar (formerly iCal), HCL Domino (formerly IBM Notes and Lotus Notes), Yahoo! Calendar, GNOME Evolution, eM Client, Lightning extension for Mozilla Thunderbird and SeaMonkey, and partially by Microsoft Outlook and Novell GroupWise.

What is Vevent?

A " VEVENT " calendar component is a grouping of component properties, and possibly including "VALARM" calendar components, that represents a scheduled amount of time on a calendar.


1 Answers

Summarizing the comments and adding my own two cents:

  • There is no such thing as the iCalendar database schema.
  • Since iCalendar is just some BLOB, in the easiest case you might just store it as a single string field.
  • Since you want to query by time-range, you'll probably want at least separate fields for that.
  • Recurring events are tricky to get right, because many complicated things can be constructed with iCalendar's RRULEs
    • Calendar Recurring/Repeating Events - Best Storage Method
    • For khal, we decided to simply generate a cache for the next X decades. That means a separate table that maps each event from the event table to a lot of datetime-ranges, which are generated according to the RRULES.
like image 91
Markus Unterwaditzer Avatar answered Oct 12 '22 09:10

Markus Unterwaditzer