Create or overwrite one calendar event
officient_overwrite_calendar_eventOverwrite or create a calendar event of a specific type for a person on a given date. Handy for syncing time tracking.
Instructions
Idempotent upsert of a single event of a given type on a given date: overwrites the existing event of that type or creates it. Handy for syncing time tracking. The event type itself cannot be changed. CAVEAT (observed live 2026-07): when an event of that type already exists on that date with the same duration_minutes, the API returns {"success":1,"info":"no action taken"} and changes NOTHING — it does not compare start_time_minutes. To move an existing event's start time, delete it with officient_delete_calendar_event and re-add it with officient_add_calendar_event. Always read the calendar back to confirm the change actually landed. Required scope: calendar:write. WRITES DATA in Officient.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | Day of month, 1-31. | |
| type | Yes | sick_day, education or custom. | |
| year | Yes | Four-digit year, e.g. 2026. | |
| month | Yes | Month, 1-12. | |
| person_id | Yes | Officient person id. | |
| duration_minutes | Yes | Duration in minutes, or the string "all_day" to use the scheduled hours for that day. | |
| start_time_minutes | Yes | Start time in minutes since midnight, e.g. 540 = 09:00. | |
| custom_day_off_type_id | No | Required when type="custom"; get it from officient_list_event_types. |