You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document real GridSmart shape and fix UTC/ET handling
Verified against last year's published grid (sessionize.com/api/v2/ayab1utz/view/GridSmart). Two correctness fixes:
- Session startsAt/endsAt are UTC (Z suffix), not ET. Agenda + now/next workflows now explicitly convert UTC -> Eastern Time when displaying.
- The agenda workflow referenced a nonexistent startSlot field; replaced with the real nested days[].rooms[].sessions[] traversal, including dedup of plenary sessions and filtering of isServiceSession entries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: .claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "techbash",
3
3
"description": "Connect your project to the TechBash 2026 session catalog — discover relevant talks, look up speakers, plan your schedule, and capture notes from your development environment.",
Copy file name to clipboardExpand all lines: .github/plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "techbash",
3
3
"description": "Connect your project to the TechBash 2026 session catalog — discover relevant talks, look up speakers, plan your schedule, and capture notes from your development environment.",
Copy file name to clipboardExpand all lines: skills/techbash/SKILL.md
+56-8Lines changed: 56 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ compatibility: >-
20
20
per conversation and filter in-context.
21
21
metadata:
22
22
author: TechBash organizers
23
-
version: "0.3"
23
+
version: "0.3.1"
24
24
domain: techbash
25
25
---
26
26
@@ -63,8 +63,8 @@ Key fields from the Sessions / All views:
63
63
|`description`| Full abstract (markdown-ish; may contain `\r\n`) |
64
64
|`speakers[]`| Array of `{ id, name }` — join to the Speakers view for bios/links |
65
65
|`categories[]`| Track/level/format tags (may be empty pre-publish) |
66
-
|`room` / `roomId`|`null` until the schedule is published |
67
-
|`startsAt` / `endsAt`| ISO timestamps in ET; `null` until the schedule is published |
66
+
|`room` / `roomId`|`null` until the schedule is published; populated from GridSmart once the grid is live|
67
+
|`startsAt` / `endsAt`| ISO 8601 timestamps in **UTC** (e.g. `2025-11-04T14:00:00Z` = 10:00 EDT); `null` until the schedule is published. Always convert to Eastern Time before showing to the user.|
68
68
|`status`|`Accepted` for confirmed sessions |
69
69
|`isServiceSession`|`true` for non-talk slots (meals, breaks, family-day activities) |
70
70
@@ -74,6 +74,53 @@ Key fields from the Sessions / All views:
74
74
| --- | --- |
75
75
|`id` (GUID) | Use to join from session `speakers[].id`|
"recordingUrl":null, // populated post-event when uploads land
107
+
"status":"Accepted",
108
+
"isInformed":true,
109
+
"isConfirmed":true
110
+
}
111
+
]
112
+
}
113
+
]
114
+
}
115
+
]
116
+
```
117
+
118
+
Notes:
119
+
120
+
- Times are **UTC**. Always convert to Eastern Time (America/New_York, which is EDT during TechBash week) before displaying. Eastern Time observes DST; the offset is `-04:00` in October.
121
+
-`isServiceSession: true` marks meals, breaks, registration, and family-day activities — exclude these from "what talks are on?" answers unless the user explicitly asks.
122
+
-`isPlenumSession: true` marks keynotes / shared sessions; they typically appear in every room's `sessions[]` or in a single dedicated room. Deduplicate by session `id`.
123
+
-`liveUrl` / `recordingUrl` are usually `null` during the event; the recording URL is populated days-to-weeks after the conference.
77
124
|`profilePicture`| URL to the headshot |
78
125
|`sessions[]`|`{ id, name }` — reverse index back to sessions |
79
126
|`links[]`|`{ title, url, linkType }` — Twitter / LinkedIn / Blog / Company_Website / etc. |
1. Run the matching workflow above to pick recommended sessions.
186
233
2. Fetch GridSmart.
187
-
3. If GridSmart is empty (no `startSlot`/`rooms`), tell the user the schedule isn't published yet and offer to save the un-timed picks as a markdown shortlist.
188
-
4. If GridSmart has data, build a per-day itinerary, flag conflicts, and offer to save as `techbash-agenda.md` (and, on request, `techbash-agenda.ics`). Do not write files until the user confirms.
234
+
3. If GridSmart is `[]` (empty array), tell the user the schedule isn't published yet and offer to save the un-timed picks as a markdown shortlist.
235
+
4. If GridSmart has data, build a per-day itinerary by iterating each day's `rooms[].sessions[]`, deduplicating sessions that appear in multiple rooms (e.g. plenary sessions), converting `startsAt`/`endsAt` from UTC to Eastern Time, flagging conflicts where the user's picks overlap, and excluding `isServiceSession: true` entries unless asked. Offer to save as `techbash-agenda.md` (and, on request, `techbash-agenda.ics`). Do not write files until the user confirms.
189
236
190
237
### "What's happening now?" / "What's next in \<room\>?"
191
238
192
-
1. Fetch GridSmart. If empty, report "schedule not yet published".
193
-
2. Compare the current time (Eastern Time) to session `startsAt`/`endsAt`.
194
-
3. Return the matching session(s) with title, speaker, room, and remaining time.
239
+
1. Fetch GridSmart. If `[]`, report "schedule not yet published" and stop.
240
+
2. Get the current time in Eastern Time, convert it to UTC for comparison against session `startsAt`/`endsAt`.
241
+
3. Walk every day's `rooms[].sessions[]`, deduplicating by session `id` (plenary sessions can appear in multiple rooms). Exclude `isServiceSession: true` unless the user asked about meals/breaks specifically.
242
+
4. Return the matching session(s) with title, speaker, room (display the room `name`, not the `roomId`), and remaining time — formatted in Eastern Time, e.g. "ends at 3:30 PM ET (32 min left)".
0 commit comments