[{"data":1,"prerenderedAt":608},["ShallowReactive",2],{"navigation_docs":3,"-tools-calendar":139,"-tools-calendar-surround":603},[4,8,12,16,20,24,28,32,59,63,117,121,135],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","1.introduction",{"title":9,"path":10,"stem":11},"Memory","\u002Fmemory","10.memory",{"title":13,"path":14,"stem":15},"Customization","\u002Fcustomization","11.customization",{"title":17,"path":18,"stem":19},"Deployment","\u002Fdeployment","12.deployment",{"title":21,"path":22,"stem":23},"Reference","\u002Freference","13.reference",{"title":25,"path":26,"stem":27},"Quickstart","\u002Fquickstart","2.quickstart",{"title":29,"path":30,"stem":31},"Installation","\u002Finstallation","3.installation",{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":58},"Connectors","i-lucide-cable","\u002Fconnectors","4.connectors",[38,42,46,50,54],{"title":39,"path":40,"stem":41},"Telegram","\u002Fconnectors\u002Ftelegram","4.connectors\u002F1.telegram",{"title":43,"path":44,"stem":45},"Slack","\u002Fconnectors\u002Fslack","4.connectors\u002F2.slack",{"title":47,"path":48,"stem":49},"Email","\u002Fconnectors\u002Femail","4.connectors\u002F3.email",{"title":51,"path":52,"stem":53},"API","\u002Fconnectors\u002Fapi","4.connectors\u002F4.api",{"title":55,"path":56,"stem":57},"Terminal","\u002Fconnectors\u002Fterminal","4.connectors\u002F5.terminal",false,{"title":60,"path":61,"stem":62},"Attachments","\u002Fattachments","5.attachments",{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":58},"Tools","i-lucide-wrench","\u002Ftools","6.tools",[69,73,77,81,85,89,93,97,101,105,109,113],{"title":70,"path":71,"stem":72},"File Manager","\u002Ftools\u002Ffile-manager","6.tools\u002F1.file-manager",{"title":74,"path":75,"stem":76},"Text-to-Speech","\u002Ftools\u002Ftext-to-speech","6.tools\u002F10.text-to-speech",{"title":78,"path":79,"stem":80},"Confirmations","\u002Ftools\u002Fconfirmations","6.tools\u002F11.confirmations",{"title":82,"path":83,"stem":84},"Adding Custom Tools","\u002Ftools\u002Fadding-custom-tools","6.tools\u002F12.adding-custom-tools",{"title":86,"path":87,"stem":88},"Image Manager","\u002Ftools\u002Fimage-manager","6.tools\u002F2.image-manager",{"title":90,"path":91,"stem":92},"Web Request","\u002Ftools\u002Fweb-request","6.tools\u002F3.web-request",{"title":94,"path":95,"stem":96},"Reminders","\u002Ftools\u002Freminders","6.tools\u002F4.reminders",{"title":98,"path":99,"stem":100},"Heartbeats","\u002Ftools\u002Fheartbeats","6.tools\u002F5.heartbeats",{"title":102,"path":103,"stem":104},"Email Manager","\u002Ftools\u002Femail-manager","6.tools\u002F6.email-manager",{"title":106,"path":107,"stem":108},"Calendar","\u002Ftools\u002Fcalendar","6.tools\u002F7.calendar",{"title":110,"path":111,"stem":112},"Read Database","\u002Ftools\u002Fread-database","6.tools\u002F8.read-database",{"title":114,"path":115,"stem":116},"Headless Browser","\u002Ftools\u002Fbrowser","6.tools\u002F9.browser",{"title":118,"path":119,"stem":120},"Tinker","\u002Ftinker","7.tinker",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":58},"Skills","i-lucide-sparkles","\u002Fskills","8.skills",[127,131],{"title":128,"path":129,"stem":130},"Overview","\u002Fskills\u002Foverview","8.skills\u002F1.overview",{"title":132,"path":133,"stem":134},"Adding Custom Skills","\u002Fskills\u002Fadding-custom-skills","8.skills\u002F2.adding-custom-skills",{"title":136,"path":137,"stem":138},"Personas","\u002Fpersonas","9.personas",{"id":140,"title":106,"body":141,"description":596,"extension":597,"links":598,"meta":599,"navigation":600,"path":107,"seo":601,"stem":108,"__hash__":602},"docs\u002F6.tools\u002F7.calendar.md",{"type":142,"value":143,"toc":587},"minimark",[144,148,157,161,190,193,197,200,220,223,248,251,255,266,296,303,307,377,400,404,519,522,526,575,583],[145,146,5],"h2",{"id":147},"introduction",[149,150,151,152,156],"p",{},"The Calendar tool manages events on either Google Calendar or any CalDAV server, including Apple's iCloud calendars. One driver is active at a time, chosen via ",[153,154,155],"code",{},"LARACLAW_CALENDAR_DRIVER",".",[145,158,160],{"id":159},"choosing-a-driver","Choosing a Driver",[162,163,168],"pre",{"className":164,"code":165,"language":166,"meta":167,"style":167},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","LARACLAW_CALENDAR_DRIVER=google\n# or\nLARACLAW_CALENDAR_DRIVER=apple\n","env","",[153,169,170,178,184],{"__ignoreMap":167},[171,172,175],"span",{"class":173,"line":174},"line",1,[171,176,177],{},"LARACLAW_CALENDAR_DRIVER=google\n",[171,179,181],{"class":173,"line":180},2,[171,182,183],{},"# or\n",[171,185,187],{"class":173,"line":186},3,[171,188,189],{},"LARACLAW_CALENDAR_DRIVER=apple\n",[149,191,192],{},"Leaving it unset disables the tool.",[145,194,196],{"id":195},"google-calendar-setup","Google Calendar Setup",[149,198,199],{},"You'll need a Google Cloud project with the Calendar API enabled and an OAuth client (desktop type). Run:",[162,201,205],{"className":202,"code":203,"language":204,"meta":167,"style":167},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","php artisan laraclaw:setup-calendar\n","bash",[153,206,207],{"__ignoreMap":167},[171,208,209,213,217],{"class":173,"line":174},[171,210,212],{"class":211},"sBMFI","php",[171,214,216],{"class":215},"sfazB"," artisan",[171,218,219],{"class":215}," laraclaw:setup-calendar\n",[149,221,222],{},"The wizard walks you through authorizing the app and storing the OAuth token. It sets:",[162,224,226],{"className":164,"code":225,"language":166,"meta":167,"style":167},"LARACLAW_CALENDAR_DRIVER=google\nLARACLAW_GOOGLE_CREDENTIALS_JSON=oauth-credentials.json\nLARACLAW_GOOGLE_TOKEN_JSON=oauth-token.json\nLARACLAW_GOOGLE_CALENDAR_ID=primary\n",[153,227,228,232,237,242],{"__ignoreMap":167},[171,229,230],{"class":173,"line":174},[171,231,177],{},[171,233,234],{"class":173,"line":180},[171,235,236],{},"LARACLAW_GOOGLE_CREDENTIALS_JSON=oauth-credentials.json\n",[171,238,239],{"class":173,"line":186},[171,240,241],{},"LARACLAW_GOOGLE_TOKEN_JSON=oauth-token.json\n",[171,243,245],{"class":173,"line":244},4,[171,246,247],{},"LARACLAW_GOOGLE_CALENDAR_ID=primary\n",[149,249,250],{},"Laraclaw extends Spatie's Google Calendar integration to refresh and persist the OAuth token when it expires.",[145,252,254],{"id":253},"apple-caldav-setup","Apple CalDAV Setup",[149,256,257,258,265],{},"You'll need an ",[259,260,264],"a",{"href":261,"rel":262},"https:\u002F\u002Fsupport.apple.com\u002Fen-us\u002F102654",[263],"nofollow","app-specific password"," from your Apple ID account.",[162,267,269],{"className":164,"code":268,"language":166,"meta":167,"style":167},"LARACLAW_CALENDAR_DRIVER=apple\nLARACLAW_APPLE_CALDAV_SERVER=https:\u002F\u002Fcaldav.icloud.com\nLARACLAW_APPLE_CALDAV_USERNAME=you@icloud.com\nLARACLAW_APPLE_CALDAV_PASSWORD=xxxx-xxxx-xxxx-xxxx\nLARACLAW_APPLE_CALDAV_CALENDAR=Home\n",[153,270,271,275,280,285,290],{"__ignoreMap":167},[171,272,273],{"class":173,"line":174},[171,274,189],{},[171,276,277],{"class":173,"line":180},[171,278,279],{},"LARACLAW_APPLE_CALDAV_SERVER=https:\u002F\u002Fcaldav.icloud.com\n",[171,281,282],{"class":173,"line":186},[171,283,284],{},"LARACLAW_APPLE_CALDAV_USERNAME=you@icloud.com\n",[171,286,287],{"class":173,"line":244},[171,288,289],{},"LARACLAW_APPLE_CALDAV_PASSWORD=xxxx-xxxx-xxxx-xxxx\n",[171,291,293],{"class":173,"line":292},5,[171,294,295],{},"LARACLAW_APPLE_CALDAV_CALENDAR=Home\n",[149,297,298,299,302],{},"The same driver works for any CalDAV server. Point ",[153,300,301],{},"LARACLAW_APPLE_CALDAV_SERVER"," at whatever endpoint you use.",[145,304,306],{"id":305},"listing-events","Listing Events",[308,309,310,326],"table",{},[311,312,313],"thead",{},[314,315,316,320,323],"tr",{},[317,318,319],"th",{},"Parameter",[317,321,322],{},"Required",[317,324,325],{},"Description",[327,328,329,345,365],"tbody",{},[314,330,331,337,340],{},[332,333,334],"td",{},[153,335,336],{},"operation",[332,338,339],{},"Yes",[332,341,342],{},[153,343,344],{},"list",[314,346,347,352,354],{},[332,348,349],{},[153,350,351],{},"start",[332,353,339],{},[332,355,356,357,360,361,364],{},"Range start. ISO 8601 or plain English (",[153,358,359],{},"\"tomorrow at 10am\"",", ",[153,362,363],{},"\"in 3 hours\"",").",[314,366,367,372,374],{},[332,368,369],{},[153,370,371],{},"end",[332,373,339],{},[332,375,376],{},"Range end",[149,378,379,380,360,383,360,386,360,388,360,390,360,393,396,397,156],{},"Returns a JSON array of events with ",[153,381,382],{},"id",[153,384,385],{},"title",[153,387,351],{},[153,389,371],{},[153,391,392],{},"description",[153,394,395],{},"location",", and ",[153,398,399],{},"attendees",[145,401,403],{"id":402},"creating-and-updating-events","Creating and Updating Events",[308,405,406,417],{},[311,407,408],{},[314,409,410,412,415],{},[317,411,319],{},[317,413,414],{},"For",[317,416,325],{},[327,418,419,437,449,460,471,486,497,508],{},[314,420,421,425,428],{},[332,422,423],{},[153,424,336],{},[332,426,427],{},"Both",[332,429,430,433,434],{},[153,431,432],{},"create"," or ",[153,435,436],{},"update",[314,438,439,443,446],{},[332,440,441],{},[153,442,382],{},[332,444,445],{},"Update",[332,447,448],{},"The event ID",[314,450,451,455,457],{},[332,452,453],{},[153,454,385],{},[332,456,427],{},[332,458,459],{},"Event title (required for create)",[314,461,462,466,468],{},[332,463,464],{},[153,465,351],{},[332,467,427],{},[332,469,470],{},"Start time. Natural language or ISO 8601.",[314,472,473,477,479],{},[332,474,475],{},[153,476,371],{},[332,478,427],{},[332,480,481,482,485],{},"End time. Defaults to ",[153,483,484],{},"start + 1 hour"," on create.",[314,487,488,492,494],{},[332,489,490],{},[153,491,392],{},[332,493,427],{},[332,495,496],{},"Event description",[314,498,499,503,505],{},[332,500,501],{},[153,502,395],{},[332,504,427],{},[332,506,507],{},"Event location",[314,509,510,514,516],{},[332,511,512],{},[153,513,399],{},[332,515,427],{},[332,517,518],{},"Array of email addresses to invite",[149,520,521],{},"Update operations are partial. Pass only the fields you want to change.",[145,523,525],{"id":524},"deleting-events","Deleting Events",[308,527,528,538],{},[311,529,530],{},[314,531,532,534,536],{},[317,533,319],{},[317,535,322],{},[317,537,325],{},[327,539,540,553,563],{},[314,541,542,546,548],{},[332,543,544],{},[153,545,336],{},[332,547,339],{},[332,549,550],{},[153,551,552],{},"delete",[314,554,555,559,561],{},[332,556,557],{},[153,558,382],{},[332,560,339],{},[332,562,448],{},[314,564,565,569,572],{},[332,566,567],{},[153,568,385],{},[332,570,571],{},"No",[332,573,574],{},"Used in the confirmation prompt",[149,576,577,578,582],{},"Deletes ",[579,580,581],"strong",{},"require confirmation",". The user is prompted in chat with the event title first.",[584,585,586],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":167,"searchDepth":180,"depth":180,"links":588},[589,590,591,592,593,594,595],{"id":147,"depth":180,"text":5},{"id":159,"depth":180,"text":160},{"id":195,"depth":180,"text":196},{"id":253,"depth":180,"text":254},{"id":305,"depth":180,"text":306},{"id":402,"depth":180,"text":403},{"id":524,"depth":180,"text":525},"List, create, update, and delete events on Google Calendar or Apple CalDAV.","md",null,{},true,{"title":106,"description":596},"mfCzgXhdLmS3uQclRbZHV2dBBQVGEompf9ULQJIUEIU",[604,606],{"title":102,"path":103,"stem":104,"description":605,"children":-1},"Read, send, reply to, and organize messages in your inbox.",{"title":110,"path":111,"stem":112,"description":607,"children":-1},"Let the agent run SELECT queries against your application database through a read-only connection.",1786661906119]