Календарь (iCal) в формате .ics

У меня есть несколько событий, которые я хочу ввести в Календарь. Поскольку у меня много событий, я хотел бы скопировать/вставить в файл и импортировать файл, а не вводить их вручную. Кто-нибудь знает формат данного мероприятия?

Я нашел это в файле .ics:

BEGIN:VEVENT
SUMMARY:Girls U14 Div 1A- Newton G Panthers VS Arlington GU14 A Team 
UID:5248
DESCRIPTION;ENCODING=QUOTED-PRINTABLE: There is a game at Valeo Main - Valeo Main
LOCATION:Valeo Main - Valeo Main
DTSTART;TZID=/US/Eastern:20131109T100000
DTEND;TZID=/US/Eastern:20131109T113000
URL:http://www.bays.org/iCal/iCal.php?2339
END:VEVENT

Выглядит довольно просто, хотя я не знаю, что использовать для UID.

Спасибо, Брюс

У вас есть «несколько событий» в каком формате или приложении в настоящее время?
«События» не имеют какого-либо конкретного формата. Я получаю электронное письмо со временем и датами (иногда несколькими датами) и местами для различных событий, и было бы удобно включить основную информацию в файл .ics (если бы я знал формат) и импортировать его в Календарь. Спасибо за ваш интерес.
Вы хотите отправить файл .ics другим людям? Если это так, вы можете просто экспортировать событие или даже календарь. Если вы хотите вводить вещи, которые люди присылают вам, в свой календарь, функция «детектор данных» Mac иногда позволяет вам вводить события и автоматически получать данные из почты (если вы наведете указатель мыши на дату в электронном письме, появится должен быть маленький треугольник, на который можно нажать). Или ознакомьтесь с фантастическим приложением - возможно, это то, что вы ищете
нет, я не хочу отправлять файл .ics. Я хочу написать свой собственный файл .ics и импортировать его в свой календарь. Спасибо.
Вы хотите сделать какой-то тип автоматизации? Если да, пожалуйста, предложите более подробную информацию. Я сомневаюсь, что вы планируете набирать .ics-файл вручную, а затем импортировать его? Если да, то почему бы просто не использовать мышь для создания события в ical?
Я собирался создать .ics вручную. Иногда я получаю много событий по электронной почте, и я подумал, что будет проще вставить события в .emacs, выполнить «быстрое» редактирование, а затем импортировать файл .ics. Я все еще могу попробовать это, но (как вы предлагаете) может быть проще просто создавать события в ical (или использовать Fantastical, как кто-то еще предложил). Спасибо.

Ответы (2)

Спецификация iCalendar описывает, что требуется от файла .ics. Вкратце, простой файл .ics выглядит так:

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

UID — это уникальный идентификатор. Он в основном используется для упорядочивания нескольких запросов iCalendar. Спецификация iCalendar дает рекомендации по его созданию:

Хороший способ обеспечить уникальность — поместить доменное имя или доменный литерал IP-адреса хоста, на котором был создан идентификатор, справа от «@», а слева — комбинацию текущей календарной даты и времени суток (т. е. отформатированных как значение ДАТА-ВРЕМЯ) вместе с некоторым другим в настоящее время уникальным (возможно, последовательным) идентификатором, доступным в системе (например, номером идентификатора процесса). Использование значения ДАТА-ВРЕМЯ слева и имени домена или литерала домена справа позволяет гарантировать уникальность, поскольку никакие два хоста не должны использовать одно и то же доменное имя или IP-адрес одновременно. Хотя другие алгоритмы будут работать,

Большинство приложений-календарей довольно терпимы к искаженным файлам .ics. Если ваши мероприятия довольно просты (без повторения, без приглашений и т. д.), вероятно, не так уж сложно собрать AppleScript (или любой другой язык сценариев, который вы предпочитаете), чтобы создать их для вас. Вот один AppleScript для него из StackOverflow .

Спецификацию компонента iCalendar Event можно найти здесь: tools.ietf.org/html/rfc2445#section-4.6.1 .

Несколько лет назад я написал краткое объяснение того, как создать генератор календаря ics с использованием MySQL и PHP. Вы можете найти это полезным.