#calendar #api-client #google #events #power

gcal

gcal is simplistic a client library for Google Calendar, designed to power saturn-cli

7 releases

0.1.6 Mar 8, 2024
0.1.5 Oct 1, 2023
0.1.4 Sep 27, 2023

#1047 in Web programming


Used in saturn-cli

MIT license

45KB
1K SLoC

gcal: Another Google Calendar API library for rust-lang

I wrote this by hand because I found other clients hard to use for my use-cases. This provides an API layer into the Google Calendar API that is very minimal but also mostly complete. Types are fully represented.

Example

use gcal::*;

#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
    let access_key = std::env::args().nth(1).expect("Provide an access key");
    let now = chrono::Local::now();
    let client = Client::new(access_key);
    let client = EventClient::new(client);
    let list = client.list(now - chrono::Duration::days(1), now).await?;

    for event in &list {
        eprintln!("{} {}", event.id, event.summary);
    }
}

Status

This library is being maintained by hand and is not generated from any API source e.g. OpenAPI, because I can't seem to find an example of Google providing that directly. As a result, calls may be incorrect in spots, especially where they are supplied for completeness and not used in saturn which is what this library was built to power.

If documentation is sparse, I am sorry, if you need explanations please feel free to put in a ticket.

I am happy to maintain the work within reason, but the goal is mostly to prop up saturn, and any major overhauls that would alter that charter would likely be rejected.

Author

Erik Hollensbe erik+github@hollensbe.org

Dependencies

~11–25MB
~404K SLoC