是否有任何客观的C API或对象可以让我访问iCal及其事件? 我需要阅读给定日期的日历事件,并可选择设置新事件。
代码是普通C或目标C(在程序的GUI版本中)。我在mac os 10.6上使用xcode。
非常感谢示例代码。
答案 0 :(得分:5)
截至10.8(Mountain Lion),Calendar Store is deprecated。您现在应该使用Event Kit。
答案 1 :(得分:1)
您可能会发现使用iCal的Apple Events脚本界面更容易。如果您不喜欢直接使用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')