API
일정 만들기
일정을 캘린더에 넣고 참석자를 초대합니다. 앱의 새 일정과 같습니다.
POST/calendar/events
워크스페이스에 실제 호출을 실행합니다.
POST /calendar/events
일정을 캘린더에 넣고 참석자를 초대합니다. 앱의 새 일정과 같습니다.
예시
calendar:write가 필요하며, 일정에 참석자가 있으면 각 참석자가 from에서 이메일로 초대를 받으므로 emails:send도 필요합니다.
curl -X POST "$OE/calendar/events" -H "$AUTH" -H 'content-type: application/json' -d '{ "summary": "Planning", "start": "2026-10-12T09:00:00Z", "end": "2026-10-12T09:30:00Z", "timezone": "Europe/London", "recurrence": "FREQ=WEEKLY;BYDAY=MO", "attendees": [{ "email": "[email protected]", "name": "Ada" }], "reminders": [{ "minutesBefore": 10 }], "from": "[email protected]"}'{ "object": "calendar_event", "id": "cal_3f9a1c7e5b2d48a06c1e9f4b", "uid": "5d2c8e1a-7b3f-4c9d-a6e2-1f8b0c4d7e93@openemail", "sequence": 0, "summary": "Planning", "description": null, "location": "Room 2", "url": null, "start": "2026-10-12T09:00:00.000Z", "end": "2026-10-12T09:30:00.000Z", "allDay": false, "timezone": "Europe/London", "recurrence": "FREQ=WEEKLY;BYDAY=MO", "exdates": [], "status": "CONFIRMED", "transparency": "OPAQUE", "visibility": "PUBLIC", "organizer": { "email": "[email protected]", "name": null }, "isOrganizer": true, "source": "local", "messageId": null, "threadId": null, "alarms": [{ "minutesBefore": 10, "action": "DISPLAY" }], "attendees": [ { "object": "calendar_attendee", "email": "[email protected]", "name": "Ada", "partstat": "NEEDS-ACTION", "role": "REQ-PARTICIPANT", "rsvp": true, "cutype": null, "respondedAt": null } ], "createdAt": "2026-10-02T14:03:11.000Z", "updatedAt": "2026-10-02T14:03:11.000Z"}from은 키가 보낼 수 있는 주소여야 하며, 아니면 호출은 403 from_address_forbidden입니다. 참석자가 있는데 from이 없는 일정은 sendInvites가 false가 아니면 422 invalid_parameter입니다.
recurrence는 FREQ=WEEKLY;BYDAY=MO 같은 RRULE을, reminders는 최대 다섯 개의 { minutesBefore }를 받습니다.