
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/fantasticmao/csv-to-ical/workflows/ci/badge.svg](https://github.com/fantasticmao/csv-to-ical/actions) https://codecov.io/gh/fantasticmao/csv-to-ical/branch/main/graph/badge.svg](https://codecov.io/gh/fantasticmao/csv-to-ical) https://img.shields.io/badge/docker_hub-released-blue.svg?logo=docker](https://hub.docker.com/r/maomao233/csv-to-ical) !https://img.shields.io/github/go-mod/go-version/fantasticmao/csv-to-ical https://goreportcard.com/badge/github.com/fantasticmao/csv-to-ical](https://goreportcard.com/report/github.com/fantasticmao/csv-to-ical) https://img.shields.io/github/v/release/fantasticmao/csv-to-ical](https://github.com/fantasticmao/csv-to-ical/releases) https://img.shields.io/github/license/fantasticmao/csv-to-ical](https://github.com/fantasticmao/csv-to-ical/blob/main/LICENSE)
README English | 中文
CSV-to-iCal is a rapidly deployable Web application based on the Go language, used to convert https://datatracker.ietf.org/doc/html/rfc4180 format content into https://datatracker.ietf.org/doc/html/rfc5545 format online subscription links. For example, you can import calendar events from calendar_test.csv into your iOS Calendar / Google Calendar by subscrig to the URL <[]>.
!usage
csv-to-ical.fantasticmao.cn is an out-of-the-box CSV-to-iCal service instance provided for general users, actually running on my HomeLab and exposed to the public network via Cloudflare Tunnel.
CSV-to-iCal currently supports the following features:
Clone the repository:
bashgit clone https://github.com/fantasticmao/csv-to-ical.git cd csv-to-ical
Start compiling:
bashgo build -o csv-to-ical .
This will generate an executable file named csv-to-ical in the current directory.
If you have a Go environment, you can install directly using go install:
bashgo install github.com/fantasticmao/csv-to-ical@latest
This will install the csv-to-ical command to your GOPATH/bin directory.
The project provides a Docker image, which can be deployed via Docker:
bashdocker pull maomao233/csv-to-ical:latest
Then you can run the container:
bashdocker run -d -p 7788:7788 -v /path/to/your/config/:/opt/csv-to-ical/ maomao233/csv-to-ical:latest
Please make sure to replace /path/to/your/config with the actual directory where your config.yaml is located. The config.yaml storage directory inside the container is /opt/csv-to-ical.
Create a configuration file config.yaml. The program will by default look for config.yaml in .config/csv-to-ical/ under the user's home directory. You can also specify the configuration directory using the -d command line parameter.
Below is an example config.yaml:
yamlbind-address: 0.0.0.0:7788 # Program listening address and port, default is 0.0.0.0:7788 http-client: timeout: 3000 # HTTP client timeout (milliseconds), default is 3000ms proxy: "" # Optional HTTP proxy address, e.g., http://127.0.0.1:7890 csv-providers: # 'remote' provider example, used to process remote CSV files my-remote-calendar: url: "https://raw.githubusercontent.com/fantasticmao/csv-to-ical/main/csv/testdata/calendar_test.csv" language: "zh-cn" # Event language, optional "en" (default) or "zh-cn" recurCnt: 5 # Maximum number of years for recurring events, default is 3, max 5 backCnt: 2 # Maximum number of years for retrospective events, default is 1, max 3 # 'local' provider example, used to process local CSV files my-local-calendar: file: "/path/to/your/calendar.csv" # Local CSV file path language: "en" recurCnt: 3 backCnt: 1
Run in the project root directory:
bashgo run main.go
Or, if you have installed the ***ary:
bashcsv-to-ical -d /path/to/your/config
After the program starts successfully, it will output the following log. You can then access CSV-to-iCal via the address configured in bind-address.
start HTTP server success, bind address: 0.0.0.0:7788
By visiting <[]> or <[]>, you can get the iCal subscription link.
CSV File Format
The CSV file format has specific requirements and should contain the following columns:
| Column Name (case-insensitive) | Description | Format | Example |
|---|---|---|---|
| Name | Event Name | String | Xiao Ming's Graduation Anniversary |
| Month | Month | Integer (1-12) | 6 |
| Day | Day | Integer (1-31) | 1 |
| Year | Year | Integer | 2022 |
| Calendar_Type or CalendarType | Calendar Type | Type enumeration (*** Gregorian, lunar Lunar, birthday_*** Gregorian Birthday, birthday_lunar Lunar Birthday) | *** |
CSV File Example
For details, please see calendar_test.csv.
Using Remote CSV Files
You can subscribe to a publicly accessible CSV file via the remote interface. For example, if you have a public CSV file link <[***]>, you can use the following URL to access it:
https://<your-csv-to-ical-host>/remote?url=encode(https://example.com/your-calendar.csv) https://<your-csv-to-ical-host>/remote?base64=encode(base64(your calendar csv content))
url (or base64): URL encoding of the remote CSV file.base64 (or url): URL encoding of the base64-encoded content of the remote CSV file.lang (optional): Event language, en (default) or zh-cn.recurCnt (optional): Maximum number of years for recurring events, default is 3, max 5.backCnt (optional): Maximum number of years for retrospective events, default is 1, max 3.For example, to subscribe to a Chinese recurring event, repeating for a maximum of five years, and retrospecting for a maximum of two years:
https://<your-csv-to-ical-host>/remote?lang=zh-cn&recurCnt=5&backCnt=2&url=https%3A%2F%2Fexample.com%2Fyour-calendar.csv
Using Local CSV Files
If you want to use local CSV files, you need to configure them via config.yaml. Add an entry in the csv-providers section, specifying the file path.
For example, configure in config.yaml:
yamlcsv-providers: my-local-calendar: file: "/path/to/your/calendar_example.csv" language: "zh-cn" recurCnt: 5 backCnt: 2
Then, you can access it via the following URL:
https://<your-csv-to-ical-host>/local/my-local-calendar
Here, my-local-calendar corresponds to the key name under csv-providers in config.yaml.
Q: Why aren't my calendar events displayed?
A: Please check if your CSV file format is correct, especially if the columns Name, Month, Day, Year, CalendarType exist and the data format is correct. Also, check if the file path or url encoding in config.yaml is correct.
Q: How to enable HTTPS?
A: CSV-to-iCal itself does not directly provide HTTPS functionality. It is recommended to configure a reverse proxy (such as Nginx, Caddy, Cloudflare Tunnel, etc.) in front to handle HTTPS.
Q: What do recurCnt and backCnt mean?
A: recurCnt (recurrence count) specifies the maximum number of years for which recurring events will be generated (starting from the current year). backCnt (back count) specifies the maximum number of years for retrospective events (looking back from the current year).
CSV-to-iCal https://github.com/fantasticmao/csv-to-ical/blob/main/LICENSE
Copyright (c) 2023 fantasticmao
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务