Modules@robinpath/google-calendar
google-calendar

@robinpath/google-calendar

0.1.1Node.jsPublic

Google 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.listEvents to perform this operation
  • Get a single event by ID. -- Use google-calendar.getEvent to perform this operation
  • Create a new calendar event. -- Use google-calendar.createEvent to perform this operation
  • Update an existing event. -- Use google-calendar.updateEvent to perform this operation
  • Delete a calendar event. -- Use google-calendar.deleteEvent to perform this operation

Quick Reference

FunctionDescriptionReturns
setCredentialsSet the OAuth2 access token for Google Calendar API.Confirmation message.
listEventsList events from a calendar.Object with items array of event objects.
getEventGet a single event by ID.Event object.
createEventCreate a new calendar event.Created event object.
updateEventUpdate an existing event.Updated event object.
deleteEventDelete a calendar event.Confirmation message.
listCalendarsList all calendars for the authenticated user.Object with items array of calendar objects.
createCalendarCreate a new calendar.Created calendar object.
quickAddCreate an event from a natural-language text string.Created event object.
freeBusyCheck 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"
ParameterTypeRequiredDescription
accessTokenstringYesOAuth2 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}
ParameterTypeRequiredDescription
calendarIdstringNoCalendar ID (default: 'primary')
optionsobjectNoOptions: 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"
ParameterTypeRequiredDescription
calendarIdstringNoCalendar ID (default: 'primary')
eventIdstringYesEvent 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"}}
ParameterTypeRequiredDescription
calendarIdstringNoCalendar ID (default: 'primary')
eventobjectYesEvent 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"}
ParameterTypeRequiredDescription
calendarIdstringNoCalendar ID (default: 'primary')
eventIdstringYesEvent ID
eventobjectYesFields to update

deleteEvent

Delete a calendar event.

Module: google-calendar | Returns: string -- Confirmation message.

googleCalendar.deleteEvent "primary" "event-id"
ParameterTypeRequiredDescription
calendarIdstringNoCalendar ID (default: 'primary')
eventIdstringYesEvent 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
ParameterTypeRequiredDescription
(none)NoCall with no arguments

createCalendar

Create a new calendar.

Module: google-calendar | Returns: object -- Created calendar object.

googleCalendar.createCalendar "Work Events" {"timeZone":"America/New_York"}
ParameterTypeRequiredDescription
summarystringYesCalendar name
optionsobjectNoOptions: 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"
ParameterTypeRequiredDescription
calendarIdstringNoCalendar ID (default: 'primary')
textstringYesNatural-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"
ParameterTypeRequiredDescription
timeMinstringYesStart of time range (ISO 8601)
timeMaxstringYesEnd of time range (ISO 8601)
calendarsarrayNoArray of calendar IDs (default: ['primary'])

Error Handling

All functions throw on failure. Common errors:

ErrorCause
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)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/google-calendar

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size5.5 KB
Versions1
Weekly Downloads26
Total Downloads26
Stars0
Last Publish1 months ago
Created1 months ago

Category

productivity