Tạo file lịch .ics online
Tạo file lịch .ics cho Google, Apple, Outlook: sự kiện, sự kiện cả ngày, lặp lại, nhắc nhở, và sự kiện hằng năm theo ngày âm lịch (giỗ, rằm) tự đổi sang ngày dương.
Kết quả
Bấm “Chạy” để xem kết quả.
API ICS tạo file iCalendar (RFC 5545) mà mọi ứng dụng lịch đều nhập được: Google Calendar, Apple Calendar, Outlook, Thunderbird. Gửi một sự kiện qua tham số hoặc nhiều sự kiện bằng mảng JSON events, mỗi sự kiện có tiêu đề, thời điểm bắt đầu (YYYY-MM-DDTHH:MM theo giờ Việt Nam, hoặc chỉ ngày với sự kiện cả ngày), thời điểm kết thúc hoặc duration_minutes, địa điểm, mô tả, URL, quy tắc lặp (rrule, ví dụ FREQ=WEEKLY;COUNT=10) và nhắc nhở (alarm_minutes). Văn bản được escape và dòng dài được ngắt đúng chuẩn, kèm định nghĩa múi giờ Asia/Ho_Chi_Minh.
Lịch thông thường không lặp được theo ngày âm. Với lunar: { day: 10, month: 3, years: 10 }, API tính ngày dương của ngày âm đó cho từng năm (10/3 âm lịch → 26/4/2026, 16/4/2027…) và tạo mỗi năm một sự kiện: ngày giỗ, rằm, mùng 1, sinh nhật âm lịch, Giỗ Tổ. Ngày 30 rơi vào tháng thiếu sẽ chuyển thành ngày cuối tháng.
Kết quả là file .ics để tải về; format=json trả về nội dung file và danh sách ngày đã tính.
Dùng trong code của bạn
curl -X POST "https://apibox.io.vn/v1/ics" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Lịch gia đình","format":"json","events":[{"title":"Giỗ ông nội","lunar":{"day":10,"month":3,"years":3,"from_year":2026},"all_day":true,"alarm_minutes":1440}]}'const res = await fetch('https://apibox.io.vn/v1/ics', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Lịch gia đình",
"format": "json",
"events": [
{
"title": "Giỗ ông nội",
"lunar": {
"day": 10,
"month": 3,
"years": 3,
"from_year": 2026
},
"all_day": true,
"alarm_minutes": 1440
}
]
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/ics",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"name": "Lịch gia đình", "format": "json", "events": [{"title": "Giỗ ông nội", "lunar": {"day": 10, "month": 3, "years": 3, "from_year": 2026}, "all_day": True, "alarm_minutes": 1440}]},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/ics');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"name":"Lịch gia đình","format":"json","events":[{"title":"Giỗ ông nội","lunar":{"day":10,"month":3,"years":3,"from_year":2026},"all_day":true,"alarm_minutes":1440}]}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Tài liệu API → Nhận API key miễn phí
Hỏi đáp
Làm sao lặp sự kiện mỗi năm theo âm lịch?
Dùng lunar: { day, month, years, from_year }. Ứng dụng lịch không có kiểu lặp âm lịch, nên API ghi mỗi năm một sự kiện với đúng ngày dương.
Dùng múi giờ nào?
Giờ Việt Nam (Asia/Ho_Chi_Minh, UTC+7); file có định nghĩa múi giờ nên người ở nước ngoài vẫn thấy đúng giờ địa phương.
Có thêm nhắc nhở được không?
Có, alarm_minutes (một số hoặc mảng tối đa 5 số) thêm thông báo nhắc trước sự kiện.