# Calendar

Source: https://opvs.ai/docs/api/calendar

## `POST` /api/v1/calendar/conditions/check

**Check Conditions**

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/conditions/check' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "conditions": [
    {
      "id": "string",
      "source": "string",
      "key": "string",
      "op": "string",
      "value": null,
      "unit": "%",
      "state": {}
    }
  ]
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/conditions/check",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"conditions": [{"id": "string", "source": "string", "key": "string", "op": "string", "value": null, "unit": "%", "state": {}}]},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/conditions/check", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"conditions": [{"id": "string", "source": "string", "key": "string", "op": "string", "value": null, "unit": "%", "state": {}}]})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"conditions": [{"id": "string", "source": "string", "key": "string", "op": "string", "value": null, "unit": "%", "state": {}}]}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/conditions/check", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/reminders/{reminder_id}/deliver

**Deliver Calendar Reminder**

**Parameters**

- `reminder_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/deliver' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/deliver",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/deliver", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/deliver", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/wakes

**Deliver Calendar Wake**

Store one agent wake as Mail and publish the ordinary inbox event.

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/wakes' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "to": "string",
  "entry_id": "00000000-0000-0000-0000-000000000000",
  "run_id": "00000000-0000-0000-0000-000000000000",
  "slot": "string",
  "task": "string",
  "due": "2026-01-01T00:00:00Z",
  "body": "string"
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/wakes",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"to": "string", "entry_id": "00000000-0000-0000-0000-000000000000", "run_id": "00000000-0000-0000-0000-000000000000", "slot": "string", "task": "string", "due": "2026-01-01T00:00:00Z", "body": "string"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/wakes", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"to": "string", "entry_id": "00000000-0000-0000-0000-000000000000", "run_id": "00000000-0000-0000-0000-000000000000", "slot": "string", "task": "string", "due": "2026-01-01T00:00:00Z", "body": "string"})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"to": "string", "entry_id": "00000000-0000-0000-0000-000000000000", "run_id": "00000000-0000-0000-0000-000000000000", "slot": "string", "task": "string", "due": "2026-01-01T00:00:00Z", "body": "string"}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/wakes", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `201` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/calendar/commitments

**List Commitments**

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/commitments' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/commitments",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/commitments", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/calendar/commitments

**Create Commitment**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/calendar/commitments/preview

**Preview Commitment**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/preview' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/preview",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/preview", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/preview", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `GET` /api/v1/calendar/commitments/{commitment_id}

**Get Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PATCH` /api/v1/calendar/commitments/{commitment_id}

**Update Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X PATCH 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.patch(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PATCH", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/calendar/commitments/{commitment_id}/reminders

**List Commitment Reminders**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/reminders' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/reminders",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/reminders", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/reminders", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/commitments/{commitment_id}/cancel

**Cancel Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/cancel' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/cancel",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/cancel", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/cancel", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/commitments/{commitment_id}/done

**Complete Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/done' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/done",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/done", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/done", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/commitments/{commitment_id}/pause

**Pause Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/pause' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/pause",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/pause", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/pause", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/commitments/{commitment_id}/resume

**Resume Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/resume' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/resume",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/resume", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/resume", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/commitments/{commitment_id}/renew

**Renew Commitment**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/renew' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/renew",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/renew", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/renew", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/calendar/policy

**Get Policy**

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/policy' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/policy",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/policy", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/policy", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `PUT` /api/v1/calendar/policy

**Put Policy**

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/calendar/policy' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/calendar/policy",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/policy", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/calendar/policy", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `GET` /api/v1/calendar/due

**Get Due**

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/due' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/due",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/due", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/due", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/calendar/commitments/{commitment_id}/checked

**Record Commitment Check**

**Parameters**

- `commitment_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/checked' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/checked",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/checked", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/checked", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/calendar/runs

**List Runs**

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/runs' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/runs",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/runs", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/runs", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/calendar/runs

**Create Run**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/runs' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/runs",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/runs", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/runs", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/calendar/runs/{run_id}/complete

**Complete Run**

**Parameters**

- `run_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/runs/{run_id}/complete' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/runs/{run_id}/complete",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/runs/{run_id}/complete", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/runs/{run_id}/complete", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/calendar/reminders/{reminder_id}

**Get Reminder**

**Parameters**

- `reminder_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/calendar/reminders/{reminder_id}/fired

**Mark Reminder Fired**

**Parameters**

- `reminder_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/fired' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/fired",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/fired", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/fired", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## Check Conditions

`POST https://app.opvs.ai/api/v1/calendar/conditions/check`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Deliver Calendar Reminder

`POST https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/deliver`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Deliver Calendar Wake

`POST https://app.opvs.ai/api/v1/calendar/wakes`

Store one agent wake as Mail and publish the ordinary inbox event.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## List Commitments

`GET https://app.opvs.ai/api/v1/calendar/commitments`

## Create Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments`

## Preview Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments/preview`

## Get Commitment

`GET https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Commitment

`PATCH https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## List Commitment Reminders

`GET https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/reminders`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Cancel Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/cancel`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Complete Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/done`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Pause Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/pause`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Resume Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/resume`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Renew Commitment

`POST https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/renew`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Policy

`GET https://app.opvs.ai/api/v1/calendar/policy`

## Put Policy

`PUT https://app.opvs.ai/api/v1/calendar/policy`

## Get Due

`GET https://app.opvs.ai/api/v1/calendar/due`

## Record Commitment Check

`POST https://app.opvs.ai/api/v1/calendar/commitments/{commitment_id}/checked`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## List Runs

`GET https://app.opvs.ai/api/v1/calendar/runs`

## Create Run

`POST https://app.opvs.ai/api/v1/calendar/runs`

## Complete Run

`POST https://app.opvs.ai/api/v1/calendar/runs/{run_id}/complete`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Reminder

`GET https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Mark Reminder Fired

`POST https://app.opvs.ai/api/v1/calendar/reminders/{reminder_id}/fired`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |
