Calendar Notes API
The Calendar Notes API provides endpoints for working with daily and weekly notes. These notes are automatically organized in special calendar groups and are identified by date (for daily) or week number and year (for weekly).
Daily Notes
Section titled “Daily Notes”Get Daily Note
Section titled “Get Daily Note”Get today’s daily note, or a specific date’s note. Creates the note automatically if it doesn’t exist.
GET /api/dailyQuery Parameters
Section titled “Query Parameters”| Parameter | Type | Description |
|---|---|---|
workspaceId | string | Target workspace (uses default if not provided) |
date | string | Date in YYYY-MM-DD format (defaults to today) |
Response
Section titled “Response”{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "2025-02-07", "content": "", "workspaceId": "660e8400-e29b-41d4-a716-446655440001", "groupId": "770e8400-e29b-41d4-a716-446655440002", "userId": "880e8400-e29b-41d4-a716-446655440003", "icon": null, "isDeleted": false, "deletedAt": null, "deletedBy": null, "isEncrypted": false, "encryptionMetadata": null, "createdAt": "2025-02-07T08:00:00.000Z", "updatedAt": "2025-02-07T08:00:00.000Z" }, "count": 1, "filters": { "workspaceId": "660e8400-e29b-41d4-a716-446655440001", "date": "2025-02-07", "type": "daily" }}Example
Section titled “Example”# Get today's daily notecurl -X GET "https://sidvy.com/api/daily" \ -H "Authorization: Bearer sidvy_abc123..."
# Get a specific date's daily notecurl -X GET "https://sidvy.com/api/daily?date=2025-02-01" \ -H "Authorization: Bearer sidvy_abc123..."Update Daily Note
Section titled “Update Daily Note”Update today’s daily note, or a specific date’s note. Creates the note automatically if it doesn’t exist.
PUT /api/dailyRequest Body
Section titled “Request Body”{ "content": "# Friday, February 7th\n\n- Met with team\n- Reviewed PRs", "workspaceId": "660e8400-e29b-41d4-a716-446655440001", "date": "2025-02-07"}| Field | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Note content (markdown, max 1MB) |
workspaceId | string | No | Target workspace (uses default if not provided) |
date | string | No | Date in YYYY-MM-DD format (defaults to today) |
Response
Section titled “Response”Returns the updated note object in the same format as GET.
Example
Section titled “Example”curl -X PUT "https://sidvy.com/api/daily" \ -H "Authorization: Bearer sidvy_abc123..." \ -H "Content-Type: application/json" \ -d '{"content": "# My Daily Note\n\nToday I worked on..."}'Weekly Notes
Section titled “Weekly Notes”Get Weekly Note
Section titled “Get Weekly Note”Get the current week’s note, or a specific week’s note. Creates the note automatically if it doesn’t exist.
GET /api/weeklyQuery Parameters
Section titled “Query Parameters”| Parameter | Type | Description |
|---|---|---|
workspaceId | string | Target workspace (uses default if not provided) |
week | number | ISO week number (1-53). Required if year is provided |
year | number | Year (1970-2100). Required if week is provided |
Response
Section titled “Response”{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "2025-W06", "content": "", "workspaceId": "660e8400-e29b-41d4-a716-446655440001", "groupId": "770e8400-e29b-41d4-a716-446655440003", "userId": "880e8400-e29b-41d4-a716-446655440003", "icon": null, "isDeleted": false, "deletedAt": null, "deletedBy": null, "isEncrypted": false, "encryptionMetadata": null, "createdAt": "2025-02-03T08:00:00.000Z", "updatedAt": "2025-02-03T08:00:00.000Z" }, "count": 1, "filters": { "workspaceId": "660e8400-e29b-41d4-a716-446655440001", "week": 6, "year": 2025, "type": "weekly" }}Example
Section titled “Example”# Get current week's notecurl -X GET "https://sidvy.com/api/weekly" \ -H "Authorization: Bearer sidvy_abc123..."
# Get a specific week's notecurl -X GET "https://sidvy.com/api/weekly?week=6&year=2025" \ -H "Authorization: Bearer sidvy_abc123..."Update Weekly Note
Section titled “Update Weekly Note”Update the current week’s note, or a specific week’s note. Creates the note automatically if it doesn’t exist.
PUT /api/weeklyRequest Body
Section titled “Request Body”{ "content": "# Week 6, 2025\n\n## Goals\n- Ship new feature\n- Review Q1 roadmap", "workspaceId": "660e8400-e29b-41d4-a716-446655440001", "week": 6, "year": 2025}| Field | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Note content (markdown, max 1MB) |
workspaceId | string | No | Target workspace (uses default if not provided) |
week | number | No | ISO week number (1-53). Required if year is provided |
year | number | No | Year (1970-2100). Required if week is provided |
Response
Section titled “Response”Returns the updated note object in the same format as GET.
Example
Section titled “Example”curl -X PUT "https://sidvy.com/api/weekly" \ -H "Authorization: Bearer sidvy_abc123..." \ -H "Content-Type: application/json" \ -d '{"content": "# Week Summary\n\n## Accomplishments\n- Launched v2.0"}'Calendar Groups
Section titled “Calendar Groups”Daily and weekly notes are automatically organized into special calendar groups:
- Daily Notes - A group named “Daily Notes” is created automatically in each workspace
- Weekly Notes - A group named “Weekly Notes” is created automatically in each workspace
These groups are created on-demand when you first access a daily or weekly note in a workspace.
Errors
Section titled “Errors”401 Unauthorized
Section titled “401 Unauthorized”{ "error": "UNAUTHORIZED", "message": "Authentication required"}404 Not Found
Section titled “404 Not Found”{ "error": "NOT_FOUND", "message": "Workspace not found or access denied"}400 Validation Error
Section titled “400 Validation Error”{ "error": "VALIDATION_ERROR", "message": "Invalid date format. Use YYYY-MM-DD"}{ "error": "VALIDATION_ERROR", "message": "Both week and year must be provided together"}Storage Limit Errors
Section titled “Storage Limit Errors”{ "error": "VALIDATION_ERROR", "message": "Note content too long"}{ "error": "VALIDATION_ERROR", "message": "User storage quota exceeded"}