Получить / установить события календаря на iCal (программно)
Есть ли какой-нибудь целевой API или объект C, который может дать мне доступ к iCal и его событиям? Мне нужно прочитать календарь событий на определенную дату и при желании установить новое событие.
Код является либо простым C, либо целевым C (в GUI-версии программы). Я использую Xcode на Mac OS 10,6.
Пример кода с благодарностью.
2 ответа
Начиная с 10.8 (Mountain Lion), Магазин календаря устарел. Теперь вы должны использовать Event Kit.
Возможно, вам будет проще использовать интерфейс сценариев Apple Events от iCal. Если вам не нравится идея использования AppleScript напрямую, есть Apple Scripting Bridge или, что еще лучше, используйте Appscript для Objective-C, Ruby или Python. Вот один из способов получить доступ и изменить события на данный день с помощью py-appscript:
>>> from appscript import *
>>> from datetime import datetime
>>> start_time = datetime(2009,10,26)
>>> end_time = datetime(2009,10,26,23,59,59)
>>> calendar = app('iCal').calendars['Home']
>>> for event in calendar.events[(its.start_date >= start_time).AND(its.start_date <= end_time)]():
... event_properties = event.properties()
... print event_properties[k.start_date], event_properties[k.summary]
...
2009-10-26 18:40:00 <event 1>
2009-10-26 23:38:00 <event 2>
>>> event.summary.set(to='something else')