@robinpath/google-calendar
0.1.1Node.jsPublicGoogle Calendar module for RobinPath.
Google Calendar
Google Calendar module for RobinPath.
Package: @robinpath/google-calendar | Category: Productivity | Type: Integration
Authentication
googleCalendar.setCredentials "ya29.xxx"
Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.
Use Cases
Use the google-calendar module when you need to:
- List events from a calendar. -- Use
google-calendar.listEventsto perform this operation - Get a single event by ID. -- Use
google-calendar.getEventto perform this operation - Create a new calendar event. -- Use
google-calendar.createEventto perform this operation - Update an existing event. -- Use
google-calendar.updateEventto perform this operation - Delete a calendar event. -- Use
google-calendar.deleteEventto perform this operation
Quick Reference
| Function | Description | Returns |
|---|---|---|
setCredentials | Set the OAuth2 access token for Google Calendar API. | Confirmation message. |
listEvents | List events from a calendar. | Object with items array of event objects. |
getEvent | Get a single event by ID. | Event object. |
createEvent | Create a new calendar event. | Created event object. |
updateEvent | Update an existing event. | Updated event object. |
deleteEvent | Delete a calendar event. | Confirmation message. |
listCalendars | List all calendars for the authenticated user. | Object with items array of calendar objects. |
createCalendar | Create a new calendar. | Created calendar object. |
quickAdd | Create an event from a natural-language text string. | Created event object. |
freeBusy | Check free/busy status for calendars. | Free/busy response with busy intervals. |
Functions
setCredentials
Set the OAuth2 access token for Google Calendar API.
Module: google-calendar | Returns: string -- Confirmation message.
googleCalendar.setCredentials "ya29.xxx"
| Parameter | Type | Required | Description |
|---|---|---|---|
accessToken | string | Yes | OAuth2 access token |
listEvents
List events from a calendar.
Module: google-calendar | Returns: object -- Object with items array of event objects.
googleCalendar.listEvents "primary" {"timeMin":"2025-01-01T00:00:00Z","maxResults":10}
| Parameter | Type | Required | Description |
|---|---|---|---|
calendarId | string | No | Calendar ID (default: 'primary') |
options | object | No | Options: timeMin, timeMax (ISO 8601), maxResults, q (search) |
getEvent
Get a single event by ID.
Module: google-calendar | Returns: object -- Event object.
googleCalendar.getEvent "primary" "event-id"
| Parameter | Type | Required | Description |
|---|---|---|---|
calendarId | string | No | Calendar ID (default: 'primary') |
eventId | string | Yes | Event ID |
createEvent
Create a new calendar event.
Module: google-calendar | Returns: object -- Created event object.
googleCalendar.createEvent "primary" {"summary":"Meeting","start":{"dateTime":"2025-06-01T10:00:00Z"},"end":{"dateTime":"2025-06-01T11:00:00Z"}}
| Parameter | Type | Required | Description |
|---|---|---|---|
calendarId | string | No | Calendar ID (default: 'primary') |
event | object | Yes | Event object (summary, start, end, description, location, attendees) |
updateEvent
Update an existing event.
Module: google-calendar | Returns: object -- Updated event object.
googleCalendar.updateEvent "primary" "event-id" {"summary":"Updated Meeting"}
| Parameter | Type | Required | Description |
|---|---|---|---|
calendarId | string | No | Calendar ID (default: 'primary') |
eventId | string | Yes | Event ID |
event | object | Yes | Fields to update |
deleteEvent
Delete a calendar event.
Module: google-calendar | Returns: string -- Confirmation message.
googleCalendar.deleteEvent "primary" "event-id"
| Parameter | Type | Required | Description |
|---|---|---|---|
calendarId | string | No | Calendar ID (default: 'primary') |
eventId | string | Yes | Event ID to delete |
listCalendars
List all calendars for the authenticated user.
Module: google-calendar | Returns: object -- Object with items array of calendar objects.
googleCalendar.listCalendars
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | No | Call with no arguments |
createCalendar
Create a new calendar.
Module: google-calendar | Returns: object -- Created calendar object.
googleCalendar.createCalendar "Work Events" {"timeZone":"America/New_York"}
| Parameter | Type | Required | Description |
|---|---|---|---|
summary | string | Yes | Calendar name |
options | object | No | Options: description, timeZone |
quickAdd
Create an event from a natural-language text string.
Module: google-calendar | Returns: object -- Created event object.
googleCalendar.quickAdd "primary" "Meeting with John at 3pm tomorrow"
| Parameter | Type | Required | Description |
|---|---|---|---|
calendarId | string | No | Calendar ID (default: 'primary') |
text | string | Yes | Natural-language event description |
freeBusy
Check free/busy status for calendars.
Module: google-calendar | Returns: object -- Free/busy response with busy intervals.
googleCalendar.freeBusy "2025-06-01T00:00:00Z" "2025-06-02T00:00:00Z"
| Parameter | Type | Required | Description |
|---|---|---|---|
timeMin | string | Yes | Start of time range (ISO 8601) |
timeMax | string | Yes | End of time range (ISO 8601) |
calendars | array | No | Array of calendar IDs (default: ['primary']) |
Error Handling
All functions throw on failure. Common errors:
| Error | Cause |
|---|---|
Google Calendar: token not configured. Call googleCalendar.setCredentials first. | Check the error message for details |
Google Calendar API error (${res.status}): ${text} | Check the error message for details |
googleCalendar.setCredentials requires an access token. | Check the error message for details |
googleCalendar.getEvent requires an eventId. | Check the error message for details |
googleCalendar.createEvent requires an event object. | Check the error message for details |
googleCalendar.updateEvent requires eventId and event object. | Check the error message for details |
googleCalendar.deleteEvent requires an eventId. | Check the error message for details |
Google Calendar delete error (${res.status}): ${text} | Check the error message for details |
@desc "List events and validate result"
do
set $result as googleCalendar.listEvents "primary" {"timeMin":"2025-01-01T00:00:00Z","maxResults":10}
if $result != null
print "Success"
else
print "No result"
end
enddo
Recipes
1. List and iterate Events
Retrieve all items and loop through them.
@desc "List events and iterate results"
do
google-calendar.setCredentials $token
set $result as googleCalendar.listEvents "primary" {"timeMin":"2025-01-01T00:00:00Z","maxResults":10}
each $item in $result
print $item
end
enddo
2. Create a new item with createEvent
Create a new resource and capture the result.
@desc "Create event"
do
google-calendar.setCredentials $token
set $result as googleCalendar.createEvent "primary" {"summary":"Meeting","start":{"dateTime":"2025-06-01T10:00:00Z"},"end":{"dateTime":"2025-06-01T11:00:00Z"}}
print "Created: " + $result
enddo
3. Create and update workflow
Create an item and then update it.
@desc "Create event and update event"
do
google-calendar.setCredentials $token
set $created as googleCalendar.createEvent "primary" {"summary":"Meeting","start":{"dateTime":"2025-06-01T10:00:00Z"},"end":{"dateTime":"2025-06-01T11:00:00Z"}}
# Update the created item
googleCalendar.updateEvent "primary" "event-id" {"summary":"Updated Meeting"}
enddo
4. Check before creating
List existing items and only create if needed.
@desc "List events and create event"
do
google-calendar.setCredentials $token
set $existing as googleCalendar.listEvents "primary" {"timeMin":"2025-01-01T00:00:00Z","maxResults":10}
if $existing == null
googleCalendar.createEvent "primary" {"summary":"Meeting","start":{"dateTime":"2025-06-01T10:00:00Z"},"end":{"dateTime":"2025-06-01T11:00:00Z"}}
print "Item created"
else
print "Item already exists"
end
enddo
5. Multi-step Google Calendar workflow
Chain multiple google-calendar operations together.
@desc "List events, get event, and more"
do
google-calendar.setCredentials $token
set $r_listEvents as googleCalendar.listEvents "primary" {"timeMin":"2025-01-01T00:00:00Z","maxResults":10}
set $r_getEvent as googleCalendar.getEvent "primary" "event-id"
set $r_createEvent as googleCalendar.createEvent "primary" {"summary":"Meeting","start":{"dateTime":"2025-06-01T10:00:00Z"},"end":{"dateTime":"2025-06-01T11:00:00Z"}}
print "All operations complete"
enddo
6. Safe listEvents with validation
Check results before proceeding.
@desc "List events and validate result"
do
google-calendar.setCredentials $token
set $result as googleCalendar.listEvents "primary" {"timeMin":"2025-01-01T00:00:00Z","maxResults":10}
if $result != null
print "Success: " + $result
else
print "Operation returned no data"
end
enddo
Related Modules
- google-sheets -- Google Sheets module for complementary functionality
- google-contacts -- Google Contacts module for complementary functionality
- google-forms -- Google Forms module for complementary functionality
- gmail -- Gmail module for complementary functionality
- outlook -- Outlook module for complementary functionality
Versions (1)
| Version | Tag | Published |
|---|---|---|
| 0.1.1 | latest | 1 months ago |
Related Modules
rightplace
JS@robinpathv0.1.3
RightPlace integration — 130 functions for projects, WordPress, WooCommerce, email, files, git, spreadsheets, stages, docs, automations via rightplace-cli
asana
JS@robinpathv0.1.2
Asana module for RobinPath.
google-sheets
JS@robinpathv0.1.1
Google Sheets module for RobinPath.
airtable
JS@robinpathv0.1.2
Airtable module for RobinPath.
$ robinpath add @robinpath/google-calendar
