Example
The day ahead
Four scheduled views from one response.
{
"v": 1,
"refresh": 3600,
"accessibility": "Four meetings today, next is standup at 9",
"entries": [
{
"at": "2026-08-11T09:00:00Z",
"view": {
"type": "vstack",
"align": "leading",
"spacing": 0,
"padding": 18,
"bg": "#FFFFFF",
"children": [
{
"type": "text",
"text": "NOW",
"style": "caption2",
"weight": "bold",
"color": "blue"
},
{"type": "spacer", "minLength": 6},
{
"type": "text",
"text": "Standup",
"style": "title",
"weight": "bold",
"color": "primary"
},
{
"type": "text",
"text": "09:00 – 09:15",
"style": "headline",
"color": "blue"
},
{
"type": "text",
"text": "Team sync",
"style": "subheadline",
"color": "secondary"
},
{"type": "spacer", "minLength": 14},
{"type": "divider"},
{"type": "spacer", "minLength": 10},
{
"type": "text",
"text": "LATER",
"style": "caption2",
"weight": "bold",
"color": "tertiary"
},
{"type": "spacer", "minLength": 6},
{
"type": "hstack",
"spacing": 8,
"align": "center",
"children": [
{
"type": "vstack",
"children": [],
"w": 6,
"h": 6,
"corner": 3,
"bg": "tertiary"
},
{
"type": "text",
"text": "Design review",
"style": "body",
"color": "secondary"
}
]
},
{
"type": "hstack",
"spacing": 8,
"align": "center",
"children": [
{
"type": "vstack",
"children": [],
"w": 6,
"h": 6,
"corner": 3,
"bg": "tertiary"
},
{
"type": "text",
"text": "1:1",
"style": "body",
"color": "secondary"
}
]
},
{
"type": "hstack",
"spacing": 8,
"align": "center",
"children": [
{
"type": "vstack",
"children": [],
"w": 6,
"h": 6,
"corner": 3,
"bg": "tertiary"
},
{
"type": "text",
"text": "Retro",
"style": "body",
"color": "secondary"
}
]
},
{"type": "spacer"}
]
}
},
{
"at": "2026-08-11T11:30:00Z",
"view": {
"type": "vstack",
"align": "leading",
"spacing": 0,
"padding": 18,
"bg": "#FFFFFF",
"children": [
{
"type": "text",
"text": "NOW",
"style": "caption2",
"weight": "bold",
"color": "purple"
},
{"type": "spacer", "minLength": 6},
{
"type": "text",
"text": "Design review",
"style": "title",
"weight": "bold",
"color": "primary"
},
{
"type": "text",
"text": "11:30 – 12:30",
"style": "headline",
"color": "purple"
},
{
"type": "text",
"text": "With Priya, Sam",
"style": "subheadline",
"color": "secondary"
},
{"type": "spacer", "minLength": 14},
{"type": "divider"},
{"type": "spacer", "minLength": 10},
{
"type": "text",
"text": "LATER",
"style": "caption2",
"weight": "bold",
"color": "tertiary"
},
{"type": "spacer", "minLength": 6},
{
"type": "hstack",
"spacing": 8,
"align": "center",
"children": [
{
"type": "vstack",
"children": [],
"w": 6,
"h": 6,
"corner": 3,
"bg": "tertiary"
},
{
"type": "text",
"text": "1:1",
"style": "body",
"color": "secondary"
}
]
},
{
"type": "hstack",
"spacing": 8,
"align": "center",
"children": [
{
"type": "vstack",
"children": [],
"w": 6,
"h": 6,
"corner": 3,
"bg": "tertiary"
},
{
"type": "text",
"text": "Retro",
"style": "body",
"color": "secondary"
}
]
},
{"type": "spacer"}
]
}
},
{
"at": "2026-08-11T14:00:00Z",
"view": {
"type": "vstack",
"align": "leading",
"spacing": 0,
"padding": 18,
"bg": "#FFFFFF",
"children": [
{
"type": "text",
"text": "NOW",
"style": "caption2",
"weight": "bold",
"color": "teal"
},
{"type": "spacer", "minLength": 6},
{
"type": "text",
"text": "1:1",
"style": "title",
"weight": "bold",
"color": "primary"
},
{
"type": "text",
"text": "14:00 – 14:30",
"style": "headline",
"color": "teal"
},
{
"type": "text",
"text": "With Alex",
"style": "subheadline",
"color": "secondary"
},
{"type": "spacer", "minLength": 14},
{"type": "divider"},
{"type": "spacer", "minLength": 10},
{
"type": "text",
"text": "LATER",
"style": "caption2",
"weight": "bold",
"color": "tertiary"
},
{"type": "spacer", "minLength": 6},
{
"type": "hstack",
"spacing": 8,
"align": "center",
"children": [
{
"type": "vstack",
"children": [],
"w": 6,
"h": 6,
"corner": 3,
"bg": "tertiary"
},
{
"type": "text",
"text": "Retro",
"style": "body",
"color": "secondary"
}
]
},
{"type": "spacer"}
]
}
},
{
"at": "2026-08-11T16:30:00Z",
"view": {
"type": "vstack",
"align": "leading",
"spacing": 0,
"padding": 18,
"bg": "#FFFFFF",
"children": [
{
"type": "text",
"text": "NOW",
"style": "caption2",
"weight": "bold",
"color": "orange"
},
{"type": "spacer", "minLength": 6},
{
"type": "text",
"text": "Retro",
"style": "title",
"weight": "bold",
"color": "primary"
},
{
"type": "text",
"text": "16:30 – 17:30",
"style": "headline",
"color": "orange"
},
{
"type": "text",
"text": "Sprint 42",
"style": "subheadline",
"color": "secondary"
},
{"type": "spacer", "minLength": 14},
{"type": "divider"},
{"type": "spacer", "minLength": 10},
{
"type": "text",
"text": "LATER",
"style": "caption2",
"weight": "bold",
"color": "tertiary"
},
{"type": "spacer", "minLength": 6},
{"type": "spacer"}
]
}
}
]
} How it works
The response contains four entries, each with a time and a view. The device switches to each view when that time arrives, without another request.
iOS refreshes a widget on its own schedule, not yours. Answering one fetch with the whole day means the widget is right at 09:00, 11:30, 14:00 and 16:30 however few refreshes it is granted, instead of being wrong between polls.
Use the entry control above the preview to step through what the phone will show at each of those times.
Put it on your Home Screen
This example is served live, with timestamps generated at the moment of the request. Add the URL as a hook in the app and it will work on a real phone.
https://webhookwidget.com/demo/agenda Next
Launch countdown — Five ways to display the same date.
All examples