Files
openclaw-backups/skills/lark-calendar/scripts/update-event.mjs
2026-02-17 15:50:53 +00:00

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();