The Barista Logo

barista

An i3status alternative in golang

Download sample-bar Download i3status example View on GitHub

Google Calendar

godoc
import "barista.run/modules/gsuite/calendar"

Show upcoming events: calendar.New(/* client config */).

Shows upcoming events on a Google Calendar. It uses the standard oauth package.

Configuration

Example

Cal: 2h10m
Cal: -0h5m

Show time until the next event, refreshed every minute:

calendar.New().Output(func(evts calendar.EventList) bar.Output {
	var e calendar.Event
	switch {
	case len(evts.InProgress) > 0:
		e = evts.InProgress[0]
	case len(evts.Alerting) > 0:
		e = evts.Alerting[0]
	case len(evts.Upcoming) > 0:
		e = evts.Upcoming[0]
	default:
		return nil
	}
	untilStart := e.UntilStart()
	minus := ""
	if untilStart < 0 {
		untilStart = -untilStart
		minus = "-"
	}
	return outputs.Repeat(func(time.Time) bar.Output {
		return outputs.Textf("Cal: %s%dh%dm",
			minus, int(untilStart.Hours()), int(untilStart.Minutes())%60)
	}).Every(time.Minute)
})

Data: type EventList struct

Fields

type Event struct

Methods