From 5e6877e8f3fb552fce3367ff273167d2cf6af75f Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 22 Feb 2026 23:20:56 -0600 Subject: chore: add docs/ to .gitignore and untrack personal files docs/ contains session history, personal workflows, and private protocols that shouldn't be in a public repository. --- docs/workflows/add-calendar-event.org | 208 ---------------------------------- 1 file changed, 208 deletions(-) delete mode 100644 docs/workflows/add-calendar-event.org (limited to 'docs/workflows/add-calendar-event.org') diff --git a/docs/workflows/add-calendar-event.org b/docs/workflows/add-calendar-event.org deleted file mode 100644 index 713a54d..0000000 --- a/docs/workflows/add-calendar-event.org +++ /dev/null @@ -1,208 +0,0 @@ -#+TITLE: Add Calendar Event Workflow -#+AUTHOR: Craig Jennings & Claude -#+DATE: 2026-02-01 - -* Overview - -Workflow for creating calendar events via gcalcli with natural language input. - -* Triggers - -- "create an event" -- "add appointment" -- "schedule a meeting" -- "add to my calendar" -- "calendar event for..." - -* Prerequisites - -- gcalcli installed and authenticated -- Google Calendar API credentials configured -- Test with =gcalcli list= to verify authentication - -* CRITICAL: Check All Calendars Before Scheduling - -Before creating any event, ALWAYS check for conflicts across ALL calendars by querying the emacs org calendar files: - -#+begin_src bash -grep "2026-02-18" ~/.emacs.d/data/gcal.org # Google calendar -grep "2026-02-18" ~/.emacs.d/data/dcal.org # DeepSat work calendar -grep "2026-02-18" ~/.emacs.d/data/pcal.org # Proton calendar -#+end_src - -| File | Calendar | -|----------+---------------------------| -| gcal.org | Craig (Google) | -| dcal.org | Craig DeepSat (work) | -| pcal.org | Craig Proton | - -gcalcli only sees Google calendars — it will miss work and Proton events. Always verify the time slot is free across all three before creating. - -To *create* events, use gcalcli with =--calendar "Craig"= (Google). - -* Workflow Steps - -** 1. Parse Natural Language Input - -Interpret the user's request to extract: -- Event title -- Date/time (natural language like "tomorrow 3pm", "next Tuesday at 2") -- Any mentioned location -- Any mentioned description - -Examples: -- "Create an event tomorrow at 5pm called Grocery Shopping" -- "Add a meeting with Bob on Friday at 10am" -- "Schedule dentist appointment next Wednesday at 2pm at Downtown Dental" - -** 2. Apply Defaults - -| Field | Default Value | -|------------+----------------------------------| -| Calendar | Craig (default Google Calendar) | -| Reminders | 5 minutes before, at event time | -| Duration | NONE - always ask user | -| Location | None (optional) | - -** 3. Gather Missing Information - -*Always ask for:* -- Duration (required, no default) - -*Ask if relevant:* -- Location (if not provided and seems like an in-person event) - -*Never assume:* -- Duration - this must always be explicitly confirmed - -** 4. Show Event Summary - -Present the event in plain English (NOT the gcalcli command): - -#+begin_example -Event: Grocery Shopping -When: Tomorrow (Feb 2) at 5:00 PM -Duration: 1 hour -Location: (none) -Reminders: 5 min before, at event time -Calendar: Personal -#+end_example - -** 5. Explicit Confirmation - -Ask: "Create this event? (yes/no)" - -*Do NOT create the event until user confirms.* - -** 6. Execute - -Once confirmed, run: - -#+begin_src bash -gcalcli --calendar "Calendar Name" add \ - --title "Event Title" \ - --when "date and time" \ - --duration MINUTES \ - --where "Location" \ - --description "Description" \ - --reminder 5 \ - --reminder 0 \ - --noprompt -#+end_src - -** 7. Verify - -Confirm the event was created by searching: - -#+begin_src bash -gcalcli --calendar "Calendar Name" search "Event Title" -#+end_src - -Report success or failure to user. - -* Calendars - -| Calendar | Access | Notes | -|---------------------------+--------+--------------------------------| -| Craig | owner | Default — use for most events | -| Christine | owner | Christine's calendar | -| Todoist | owner | Todoist integration | -| Craig Jennings (TripIt) | reader | View only, no create | -| Holidays in United States | reader | View only | -| Craig Proton | reader | View only (no API access) | - -Use =--calendar "Craig"= to specify (default for adding events). - -* gcalcli Command Reference - -** Add Event - -#+begin_src bash -gcalcli add \ - --calendar "My Calendar" \ - --title "Event Title" \ - --when "tomorrow 3pm" \ - --duration 60 \ - --where "123 Main St" \ - --description "Notes" \ - --reminder 5 \ - --reminder 0 \ - --noprompt -#+end_src - -** Quick Add (Natural Language) - -#+begin_src bash -gcalcli --calendar "My Calendar" quick "Dinner with Eric 7pm tomorrow" -#+end_src - -** Key Options - -| Option | Description | -|---------------+-------------------------------------| -| --calendar | Calendar name or ID | -| --title | Event title | -| --when | Date/time (natural language OK) | -| --duration | Length in minutes | -| --where | Location | -| --description | Event notes | -| --reminder | Minutes before (can use multiple) | -| --allday | Create all-day event | -| --noprompt | Skip interactive confirmation | - -* Time Formats - -gcalcli accepts natural language times: -- "tomorrow 3pm" -- "next Tuesday at 2" -- "2026-02-15 14:00" -- "Feb 15 2pm" -- "today 5pm" - -* Duration Shortcuts - -| Input | Minutes | -|--------+---------| -| 30m | 30 | -| 1h | 60 | -| 1.5h | 90 | -| 2h | 120 | -| 90 | 90 | - -* Error Handling - -** Authentication Error -Run =gcalcli init= to re-authenticate. - -** Calendar Not Found -Check available calendars with =gcalcli list=. - -** Invalid Time Format -Use explicit date format: =YYYY-MM-DD HH:MM= - -* Related - -- [[file:read-calendar-events.org][Read Calendar Events]] - view events -- [[file:edit-calendar-event.org][Edit Calendar Event]] - modify events -- [[file:delete-calendar-event.org][Delete Calendar Event]] - remove events -- [[file:../calendar-api-research.org][Calendar API Research]] - gcalcli reference -- cgit v1.2.3