如何从 google-api-go-client 将时间表设置为 Google 日历?

How to set the schedule to Google Calendar from google-api-go-client?

我想将时间表设置为 google-api-go-client 的 google 日历。

我厌倦了使用 google 日历应用程序设置日程表:(

有样品吗?

您可以使用 Google 日历 API 的快速入门。详细信息为https://developers.google.com/google-apps/calendar/quickstart/go.

当你想创建事件时,你可以使用"Events: insert"。可以看到详情here.

看来你住在日本。所以当你使用示例脚本时,请注意 DateTimeTimeZone.

如果你使用以上两个示例,main() 变成如下。在 运行 示例脚本之前,请确认是否在 Google API 控制台启用了 Google 日历 API。 DateTimeTimeZone 适用于日本。详情请查看以上文档站点。

脚本:

func main() {
    ctx := context.Background()
    b, err := ioutil.ReadFile("client_secret.json")
    if err != nil {
        log.Fatalf("Unable to read client secret file: %v", err)
    }
    // If modifying these scopes, delete your previously saved credentials
    // at ~/.credentials/calendar-go-quickstart.json
    config, err := google.ConfigFromJSON(b, calendar.CalendarScope)
    if err != nil {
        log.Fatalf("Unable to parse client secret file to config: %v", err)
    }
    client := getClient(ctx, config)
    srv, err := calendar.New(client)
    if err != nil {
        log.Fatalf("Unable to retrieve calendar Client %v", err)
    }

    event := &calendar.Event{
        Summary:     "Sample event",
        Location:    "Sample location",
        Description: "This is a sample event.",
        Start: &calendar.EventDateTime{
            DateTime: "2017-04-22T00:00:00+09:00",
            TimeZone: "Asia/Tokyo",
        },
        End: &calendar.EventDateTime{
            DateTime: "2017-04-22T01:00:00+09:00",
            TimeZone: "Asia/Tokyo",
        },
    }
    calendarID := "#####"
    event, err = srv.Events.Insert(calendarID, event).Do()
    if err != nil {
        log.Fatalf("Unable to create event. %v\n", err)
    }
    fmt.Printf("Event created: %s\n", event.HtmlLink)
}