# README
devcal-go
devcal go client is a thin wrapper for devcal grpc go client which handles type conversions between grpc and go internally.
quick start
import devcal-go package
import (
"log"
devcal "github.com/devcaldev/devcal-go"
)
initialize client
client, err := devcal.New("devcal.dev:50051", apiKey)
if err != nil {
log.Fatal(err)
}
defer client.Close()
insert non recurring event
event, err := client.InsertEvent(ctx, &devcal.InsertEventParams{
Dtstart: time.Now(),
Dtend: time.Now().Add(time.Hour),
})
if err != nil {
log.Fatal(err)
}
log.Println("Event", event)
insert recurring event
event, err := client.InsertEvent(ctx, &devcal.InsertEventParams{
Dtstart: time.Now(),
Dtend: time.Now().Add(time.Hour),
Rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,SU",
})
if err != nil {
log.Fatal(err)
}
log.Println("Event", event)
insert event with additional properties
event, err := client.InsertEvent(ctx, &devcal.InsertEventParams{
Dtstart: time.Now(),
Dtend: time.Now().Add(time.Hour),
Rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,SU",
Props: map[string]any{"calendar_id": "c1"},
})
if err != nil {
log.Fatal(err)
}
log.Println("Event", event)
see client_test.go
file and example
folder for detailed usage.
goto devcal.dev to get an api key
# Functions
New creates a new Client with secure credentials.
NewWithInsecureCredentials creates a new Client with insecure credentials.
NewWithOptions creates a new Client with the provided gRPC dial options.
# Structs
Client represents a client for interacting with the EventsService.
DeleteEventParams holds parameters for deleting an event.
Event represents an event with its details.
GetEventParams holds parameters for retrieving an event.
InsertEventParams holds parameters for inserting an event.
ListEventsParams holds parameters for listing events.
UpdateEventParams holds parameters for updating an event.