Modules@robinpath/calendar
calendar

@robinpath/calendar

0.1.2Node.jsPublic

iCal (.ics) calendar parsing, generation, event management, and date range queries

Calendar

iCal (.ics) calendar parsing, generation, event management, and date range queries

Package: @robinpath/calendar | Category: Utility | Type: Utility

Authentication

No authentication required. All functions are available immediately.

Use Cases

Use the calendar module when you need to:

  • Create an iCal event object -- Use calendar.createEvent to perform this operation
  • Create iCal string from events -- Use calendar.createCalendar to perform this operation
  • Parse iCal string -- Use calendar.parse to perform this operation
  • Parse .ics file -- Use calendar.parseFile to perform this operation
  • Write iCal to file -- Use calendar.writeFile to perform this operation

Quick Reference

FunctionDescriptionReturns
createEventCreate an iCal event objectEvent object
createCalendarCreate iCal string from eventsiCal string
parseParse iCal string{name, events[]}
parseFileParse .ics file{name, events[]}
writeFileWrite iCal to filetrue
addEventAdd event to iCal stringUpdated iCal
removeEventRemove event by UIDUpdated iCal
findEventsFind events in date rangeMatching events
todayGet today's eventsToday's events
upcomingGet upcoming eventsUpcoming events
toJsonConvert iCal to JSONParsed object
formatDateFormat ISO to iCal dateiCal date
parseDateParse iCal date to ISOISO date

Functions

createEvent

Create an iCal event object

Module: calendar | Returns: object -- Event object

calendar.createEvent {"summary": "Meeting", "start": "2024-01-15T10:00:00Z", "end": "2024-01-15T11:00:00Z"}
ParameterTypeRequiredDescription
optionsobjectYes{summary, description, location, start, end, allDay, organizer, attendees, url, uid}

createCalendar

Create iCal string from events

Module: calendar | Returns: string -- iCal string

calendar.createCalendar [$event1, $event2] {"name": "My Calendar"}
ParameterTypeRequiredDescription
eventsarrayYesEvent objects
optionsobjectNo{name, timezone}

parse

Parse iCal string

Module: calendar | Returns: object -- {name, events[]}

calendar.parse $icsContent
ParameterTypeRequiredDescription
icsStringstringYesiCal content

parseFile

Parse .ics file

Module: calendar | Returns: object -- {name, events[]}

calendar.parseFile "./events.ics"
ParameterTypeRequiredDescription
filePathstringYesFile path

writeFile

Write iCal to file

Module: calendar | Returns: boolean -- true

calendar.writeFile "./events.ics" $ics
ParameterTypeRequiredDescription
filePathstringYesFile path
icsStringstringYesiCal content

addEvent

Add event to iCal string

Module: calendar | Returns: string -- Updated iCal

calendar.addEvent $ics $event
ParameterTypeRequiredDescription
icsStringstringYesExisting iCal
eventobjectYesEvent object

removeEvent

Remove event by UID

Module: calendar | Returns: string -- Updated iCal

calendar.removeEvent $ics "abc-123"
ParameterTypeRequiredDescription
icsStringstringYesExisting iCal
uidstringYesEvent UID

findEvents

Find events in date range

Module: calendar | Returns: array -- Matching events

calendar.findEvents $events "2024-01-01" "2024-01-31"
ParameterTypeRequiredDescription
eventsarrayYesEvent array
startstringYesStart date ISO
endstringYesEnd date ISO

today

Get today's events

Module: calendar | Returns: array -- Today's events

calendar.today $events
ParameterTypeRequiredDescription
eventsarrayYesEvent array

upcoming

Get upcoming events

Module: calendar | Returns: array -- Upcoming events

calendar.upcoming $events 14
ParameterTypeRequiredDescription
eventsarrayYesEvent array
daysnumberNoDays ahead (default 7)

toJson

Convert iCal to JSON

Module: calendar | Returns: object -- Parsed object

calendar.toJson $ics
ParameterTypeRequiredDescription
icsStringstringYesiCal content

formatDate

Format ISO to iCal date

Module: calendar | Returns: string -- iCal date

calendar.formatDate "2024-01-15T10:00:00Z"
ParameterTypeRequiredDescription
isoDatestringYesISO date

parseDate

Parse iCal date to ISO

Module: calendar | Returns: string -- ISO date

calendar.parseDate "20240115T100000Z"
ParameterTypeRequiredDescription
icalDatestringYesiCal date

Error Handling

All functions throw on failure. Common errors:

ErrorCause
(standard errors)Check function parameters and authentication
@desc "Create event and validate result"
do
  set $result as calendar.createEvent {"summary": "Meeting", "start": "2024-01-15T10:00:00Z", "end": "2024-01-15T11:00:00Z"}
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. Create a new item with createEvent

Create a new resource and capture the result.

set $result as calendar.createEvent {"summary": "Meeting", "start": "2024-01-15T10:00:00Z", "end": "2024-01-15T11:00:00Z"}
print "Created: " + $result

2. Multi-step Calendar workflow

Chain multiple calendar operations together.

@desc "Create event, create calendar, and more"
do
  set $r_createEvent as calendar.createEvent {"summary": "Meeting", "start": "2024-01-15T10:00:00Z", "end": "2024-01-15T11:00:00Z"}
  set $r_createCalendar as calendar.createCalendar [$event1, $event2] {"name": "My Calendar"}
  set $r_parse as calendar.parse $icsContent
  print "All operations complete"
enddo

3. Safe createEvent with validation

Check results before proceeding.

@desc "Create event and validate result"
do
  set $result as calendar.createEvent {"summary": "Meeting", "start": "2024-01-15T10:00:00Z", "end": "2024-01-15T11:00:00Z"}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • json -- JSON module for complementary functionality

Versions (1)

VersionTagPublished
0.1.2latest1 months ago
Install
$ robinpath add @robinpath/calendar

Collaborators

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

Category

utilities