to send the “AI plan” to your calendar:
- make sure the json is correct, I had to ask AI to fix it a couple of times.
sould be an array similar to this:
[
{
"start_date_local": "2025-03-04T09:00:00",
"category": "WORKOUT",
"type": "Ride",
"name": "Sweet Spot Intervals",
"description": "Warmup\n- 10m 50%-65% 90rpm\n\nMain Set\n- 3x 12m 88%-92% 85rpm\n- 5m Z2 85rpm\n\nCooldown\n- 10m 50%-40% 80rpm"
},
{
"start_date_local": "2025-03-07T09:00:00",
"category": "WORKOUT",
"type": "Ride",
"name": "Recovery Spin",
"description": "Warmup\n- 10m ramp 50%-65% 85rpm\n\nMain Set\n- 45m Z1-Z2 90rpm\n\nCooldown\n- 10m 50%-40% 80rpm"
},
{
"start_date_local": "2025-03-09T09:00:00",
"category": "WORKOUT",
"type": "Ride",
"name": "Endurance Ride",
"description": "Warmup\n- 10m ramp 50%-70% 85rpm\n\nMain Set\n- 1.5h Z2 90rpm\n\nCooldown\n- 10m 50%-40% 80rpm"
}
]
- download and install Postman
- left panel, “My Workspace”, create a new Collection (+ button)
- select your new collection and in the authorization tab select “Basic auth”, then insert “API_KEY” as username and your api key (found in your intervals.icu setting page)
- in this newly create collection add a new Request
URL: https://intervals.icu/api/v1/athlete/0/events/bulk
change type (left to URL) to POST
in the “Body” section select Raw and paste your json
- Click “Send”
do a test with couple of workouts otherwise if something is wrong manually delete all the calendar entries could take some times
If you want to do more things or need more explanations with API and to check for JSON format:

