84 lines
2.2 KiB
JavaScript
84 lines
2.2 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Update a calendar event
|
|
*
|
|
* Usage:
|
|
* node update-event.mjs --event-id "xxx" --title "New Title"
|
|
*/
|
|
|
|
import { parseArgs } from 'util';
|
|
import { updateEvent, DEFAULT_CALENDAR_ID, DEFAULT_TIMEZONE } from '../lib/calendar.mjs';
|
|
|
|
const { values } = parseArgs({
|
|
options: {
|
|
'event-id': { type: 'string' },
|
|
title: { type: 'string' },
|
|
description: { type: 'string' },
|
|
start: { type: 'string' },
|
|
end: { type: 'string' },
|
|
location: { type: 'string' },
|
|
timezone: { type: 'string', default: DEFAULT_TIMEZONE },
|
|
calendar: { type: 'string', default: DEFAULT_CALENDAR_ID },
|
|
help: { type: 'boolean', short: 'h' }
|
|
}
|
|
});
|
|
|
|
if (values.help) {
|
|
console.log(`
|
|
Update a Lark calendar event
|
|
|
|
Options:
|
|
--event-id Event ID to update (required)
|
|
--title New event title
|
|
--description New event description
|
|
--start New start time: YYYY-MM-DD HH:MM:SS
|
|
--end New end time: YYYY-MM-DD HH:MM:SS
|
|
--location New event location
|
|
--timezone IANA timezone (default: Asia/Singapore)
|
|
--calendar Calendar ID
|
|
-h, --help Show this help
|
|
|
|
Examples:
|
|
node update-event.mjs --event-id "xxx" --title "Updated Meeting"
|
|
node update-event.mjs --event-id "xxx" --start "2026-02-03 15:00:00" --end "2026-02-03 16:00:00"
|
|
`);
|
|
process.exit(0);
|
|
}
|
|
|
|
if (!values['event-id']) {
|
|
console.error('Error: --event-id is required');
|
|
process.exit(1);
|
|
}
|
|
|
|
async function main() {
|
|
try {
|
|
console.log(`Updating event: ${values['event-id']}`);
|
|
|
|
const event = await updateEvent({
|
|
eventId: values['event-id'],
|
|
title: values.title,
|
|
description: values.description,
|
|
startTime: values.start,
|
|
endTime: values.end,
|
|
location: values.location,
|
|
timezone: values.timezone,
|
|
calendarId: values.calendar
|
|
});
|
|
|
|
console.log('✅ Event updated successfully!');
|
|
console.log('');
|
|
console.log('Updated Event:');
|
|
console.log(` Title: ${event.summary}`);
|
|
console.log(` Event ID: ${event.event_id}`);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Failed to update event:', error.message);
|
|
if (error.larkResponse) {
|
|
console.error('Lark response:', JSON.stringify(error.larkResponse, null, 2));
|
|
}
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main();
|