property constant | can read | can write | persi stent | type | default | min | max | usage |
---|---|---|---|---|---|---|---|---|
CS_Area_Kind | √ | text | Object kind = “Event” (iCal) or “ExpandedEvent” (view) | |||||
CS_Event_AllDay | √ | √ | √ | bool | ||||
CS_Event_ClearStyle | √ | ignored | ||||||
CS_Event_Description | √ | √ | √ | text | ||||
CS_Event_Duration | √ | √ | √ | int | In seconds | |||
CS_Event_EndDate | √ | √ | √ | date or int | Using int variant of getter/setter, the value is assumed to be POSIX time, including the start/end time | |||
CS_Event_EndDateAdj | √ | √ | √ | text | Similar to the property above without “Adj”, but use timezone info: If iCal/eventUID is used, default calendar timezone is used (CS_iCal_DefaultTimezone) If area/eventKey is used, area’s timezone is used (CS_Area_Timezone) |
|||
CS_Event_EndTime | √ | √ | √ | int | ||||
CS_Event_EndTimeAdj | √ | √ | √ | text | Similar to the property above without “Adj”, but use timezone info | |||
CS_Event_iCal | √ | int | Owning Calendar | |||||
CS_Event_Icon | √ | √ | text | Comma separated icon IDs | ||||
CS_Event_Index | √ | √ | int | Index into the event/banner arrays when using CalendarSet compatibility API | ||||
CS_Event_InfoText | √ | √ | √ | text | Not persistent in VEVENT, only in XML This text can be displayed in day/week view, see CS_Area_ShowInfoText |
|||
CS_Event_IsRecurring | √ | √ | bool | |||||
CS_Event_Location | √ | √ | √ | text | ||||
CS_Event_Locked | √ | √ | int | 0 | 0 | 2 | 0 = unlocked 1 = selectable 2 = fully locked |
|
CS_Event_RecurrCount | √ | √ | √ | int | 0 | 0 = not counted | ||
CS_Event_Recurrence | √ | int | Recurrence instance (sequentially numbered) event in view only |
|||||
CS_Event_RecurrEnd | √ | √ | √ | int | 0 | Use POSIX datetime | ||
CS_Event_RecurrFrequency | √ | √ | √ | int | 1 | 7 | 1 = secondly 2 = minutely 3 = hourly 4 = daily 5= weekly 6 = monthly 7 = yearly First rule in the set only |
|
CS_Event_RecurrInterval | √ | √ | √ | int | 1 | |||
CS_Event_RecurrKind | √ | int | 0 = none 1 = simple 2 = advanced 3 = complex Determined by the rules used |
|||||
CS_Event_StartDate | √ | √ | √ | date or int | Using int variant of getter/setter, the value is assumed to be POSIX time, including the start/end time | |||
CS_Event_StartDateAdj | √ | √ | √ | text | Similar to the property above without “Adj”, but use timezone info: If iCal/eventUID is used, default calendar timezone is used (CS_iCal_DefaultTimezone) If area/eventKey is used, area’s timezone is used (CS_Area_Timezone) |
|||
CS_Event_StartTime | √ | √ | √ | int | ||||
CS_Event_StartTimeAdj | √ | √ | √ | text | Similar to the property above without “Adj”, but use timezone info | |||
CS_Event_Status | √ | √ | √ | int | 0 | 0 | 3 | 0 = none 1 = confirmed 2 = tentative 3 = cancelled |
CS_Event_Summary | √ | √ | √ | text | ||||
CS_Event_Title | √ | text | Event in view only | |||||
CS_Event_ToolTip | √ | √ | text | |||||
CS_Event_UID | √ | √ | text | Unique ID See below for additional explanations |
||||
CS_Event_UseDuration | √ | √ | bool | Use duration, not end date/time | ||||
CS_Event_UUID | √ | √ | √ | text | This is the real event ID stored in VEVENT Usage is meant for iCal integration: UUID is the unique event identifier |
The CS_Event_UID name can be misleading, it could be e.g. CS_Event_Key
It is actually the event key to internal map entry (key → displayed event in a view → event in a calendar)
CS_Event_UUID is the real UID of the event from “UID”.
CS_Event_UID is constructed from the UID and RID, internally named MapKey and is used directly with iCalRef.
“normal” event uses “u:” + CS_Event_UUID
“recurrence instance” uses “r:” + CS_Event_UUID + RID
When an instance is created in a view, “View:” + sequential_instance_number + “:” + CS_Event_UID (where the sequential_instance_number is zero when it is not a repeating event) is used to identify that event in the view.
CS_Event_UID (well, mostly the “View:” variant) is used for communication between 4D and CalendarSet.
When you click an event (CS_Area_ClickedEventID), you get this, not CS_Event_UUID.
Example: repeating event (created in Calendar.app)
BEGIN:VEVENT TRANSP:OPAQUE DTEND;TZID=Europe/Bratislava:20200613T100000 X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC UID:A7AA7EA3-532C-4F76-BDBC-CD0F706110C1 DTSTAMP:20200614T095222Z SEQUENCE:0 SUMMARY:Repeating Event LAST-MODIFIED:20200614T095314Z DTSTART;TZID=Europe/Bratislava:20200613T090000 CREATED:20200614T095114Z RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=5 END:VEVENT
Now you change one instance (move event from 20.6. to 21.6.) - the modified recurrence instance is added:
BEGIN:VEVENT TRANSP:OPAQUE DTEND;TZID=Europe/Bratislava:20200613T100000 X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC UID:A7AA7EA3-532C-4F76-BDBC-CD0F706110C1 DTSTAMP:20200614T095222Z SEQUENCE:0 SUMMARY:Repeating Event LAST-MODIFIED:20200614T095314Z DTSTART;TZID=Europe/Bratislava:20200613T090000 CREATED:20200614T095114Z RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=5 END:VEVENT
BEGIN:VEVENT CREATED:20200614T095114Z UID:A7AA7EA3-532C-4F76-BDBC-CD0F706110C1 DTEND;TZID=Europe/Bratislava:20200621T100000 TRANSP:OPAQUE X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC SUMMARY:Repeating Event LAST-MODIFIED:20200614T095259Z DTSTAMP:20200614T095222Z DTSTART;TZID=Europe/Bratislava:20200621T090000 SEQUENCE:0 RECURRENCE-ID;TZID=Europe/Bratislava:20200620T090000 END:VEVENT
CS_Event_VCAL | √ | text | iCal event format w/o “BEGIN:VCALENDAR” | |||||
CS_Event_VEVT | √ | text | iCal event format | |||||
CS_Event_WeekStart | √ | √ | √ | int | 0 | 6 | 0 = Sunday, 1 = Monday, …, 6 = Saturday | |
CS_Event_XML | √ | text |